[PATCH v1 5/5] makedumpfile: Add support for --block-size
Atsushi Kumagai
kumagai-atsushi at mxc.nes.nec.co.jp
Fri Oct 10 01:11:48 PDT 2014
>Use --block-size to specify block size (KB)
>When --split is specified in cyclic mode,block table will be
>generated in get_num_dumpable_cyclic.
>
>Signed-off-by: Qiao Nuohan <qiaonuohan at cn.fujitsu.com>
>Signed-off-by: Zhou Wenjian <zhouwj-fnst at cn.fujitsu.com>
>---
> makedumpfile.8 | 16 ++++++++++++++++
> makedumpfile.c | 4 ++++
> makedumpfile.h | 1 +
> 3 files changed, 21 insertions(+), 0 deletions(-)
>
>diff --git a/makedumpfile.8 b/makedumpfile.8
>index 9cb12c0..a384213 100644
>--- a/makedumpfile.8
>+++ b/makedumpfile.8
>@@ -386,6 +386,22 @@ size, so ordinary users don't need to specify this option.
> # makedumpfile \-\-cyclic\-buffer 1024 \-d 31 \-x vmlinux /proc/vmcore dumpfile
>
> .TP
>+\fB\-\-block\-size\fR \fIblock_size\fR
>+Specify the block size in kilo bytes for analysis in the cyclic mode with --split.
>+In the cyclic split mode, the number of blocks is represented as:
>+
>+ num_of_blocks = system_memory / (\fIblock_size\fR * 1KB )
>+
>+The larger number of block, the faster working speed is expected, but the more memory will
>+be taken. By default, \fIblock_size\fR will be set as 1GB, so ordinary users don't need to
>+specify this option.
>+
>+.br
>+.B Example:
>+.br
>+# makedumpfile \-\-block\-size 10240 \-d 31 \-x vmlinux \-\-split /proc/vmcore dumpfile1 dumpfile2
>+
>+.TP
Also print_usage() in print_info.c should be modified.
Thanks,
Atsushi Kumagai
> \fB\-\-non\-cyclic\fR
> Running in the non-cyclic mode, this mode uses the old filtering logic same as v1.4.4 or before.
> If you feel the cyclic mode is too slow, please try this mode.
>diff --git a/makedumpfile.c b/makedumpfile.c
>index 3e66346..405d935 100644
>--- a/makedumpfile.c
>+++ b/makedumpfile.c
>@@ -9571,6 +9571,7 @@ static struct option longopts[] = {
> {"eppic", required_argument, NULL, OPT_EPPIC},
> {"non-mmap", no_argument, NULL, OPT_NON_MMAP},
> {"mem-usage", no_argument, NULL, OPT_MEM_USAGE},
>+ {"block-size", required_argument, NULL, OPT_BLOCK_SIZE},
> {0, 0, 0, 0}
> };
>
>@@ -9711,6 +9712,9 @@ main(int argc, char *argv[])
> case OPT_CYCLIC_BUFFER:
> info->bufsize_cyclic = atoi(optarg);
> break;
>+ case OPT_BLOCK_SIZE:
>+ info->block_size = atoi(optarg);
>+ break;
> case '?':
> MSG("Commandline parameter is invalid.\n");
> MSG("Try `makedumpfile --help' for more information.\n");
>diff --git a/makedumpfile.h b/makedumpfile.h
>index ed4f799..56d2c79 100644
>--- a/makedumpfile.h
>+++ b/makedumpfile.h
>@@ -1883,6 +1883,7 @@ struct elf_prstatus {
> #define OPT_EPPIC OPT_START+12
> #define OPT_NON_MMAP OPT_START+13
> #define OPT_MEM_USAGE OPT_START+14
>+#define OPT_BLOCK_SIZE OPT_START+15
>
> /*
> * Function Prototype.
>--
>1.7.1
>
>
>_______________________________________________
>kexec mailing list
>kexec at lists.infradead.org
>http://lists.infradead.org/mailman/listinfo/kexec
More information about the kexec
mailing list