Introduce -K option to enable cyclic processing. If -K option is specified, then makedumpfile works cyclically and the memory usage will be constant. Usage: # makedumpfile -K /proc/vmcore dumpfile Signed-off-by: Atsushi Kumagai <kumagai-atsushi at mxc.nes.nec.co.jp> --- makedumpfile.c | 5 ++++- makedumpfile.h | 1 + 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/makedumpfile.c b/makedumpfile.c index d024e95..3e5f906 100644 --- a/makedumpfile.c +++ b/makedumpfile.c @@ -6968,7 +6968,7 @@ main(int argc, char *argv[]) info->block_order = DEFAULT_ORDER; message_level = DEFAULT_MSG_LEVEL; - while ((opt = getopt_long(argc, argv, "b:cDd:EFfg:hi:lMRrsvXx:", longopts, + while ((opt = getopt_long(argc, argv, "b:cDd:EFfg:hi:KlMRrsvXx:", longopts, NULL)) != -1) { switch (opt) { case 'b': @@ -7017,6 +7017,9 @@ main(int argc, char *argv[]) goto out; info->flag_sadump_diskset = 1; break; + case 'K': + info->flag_cyclic = TRUE; + break; case 'l': info->flag_compress = DUMP_DH_COMPRESSED_LZO; break; diff --git a/makedumpfile.h b/makedumpfile.h index 6f5489d..c588e43 100644 --- a/makedumpfile.h +++ b/makedumpfile.h @@ -801,6 +801,7 @@ struct DumpInfo { int flag_rearrange; /* flag of creating dumpfile from flattened format */ int flag_split; /* splitting vmcore */ + int flag_cyclic; /* cyclic processing to keep memory consumption */ int flag_reassemble; /* reassemble multiple dumpfiles into one */ int flag_refiltering; /* refilter from kdump-compressed file */ int flag_force; /* overwrite existing stuff */ -- 1.7.9.2