diff options
Diffstat (limited to 'makedumpfile.8')
-rw-r--r-- | makedumpfile.8 | 661 |
1 files changed, 661 insertions, 0 deletions
diff --git a/makedumpfile.8 b/makedumpfile.8 new file mode 100644 index 0000000..8482134 --- /dev/null +++ b/makedumpfile.8 @@ -0,0 +1,661 @@ +.TH MAKEDUMPFILE 8 "3 Jul 2018" "makedumpfile v1.6.4" "Linux System Administrator's Manual" +.SH NAME +makedumpfile \- make a small dumpfile of kdump +.SH SYNOPSIS +\fBmakedumpfile\fR [\fIOPTION\fR] [\-x \fIVMLINUX\fR|\-i \fIVMCOREINFO\fR] \fIVMCORE\fR \fIDUMPFILE\fR +.br +\fBmakedumpfile\fR \-F [\fIOPTION\fR] [\-x \fIVMLINUX\fR|\-i \fIVMCOREINFO\fR] \fIVMCORE\fR +.br +\fBmakedumpfile\fR [\fIOPTION\fR] \-x \fIVMLINUX\fR [\-\-config \fIFILTERCONFIGFILE\fR] [\-\-eppic \fIEPPICMACRO\fR] \fIVMCORE\fR \fIDUMPFILE\fR +.br +\fBmakedumpfile\fR \-R \fIDUMPFILE\fR +.br +\fBmakedumpfile\fR \-\-split [\fIOPTION\fR] [\-x \fIVMLINUX\fR|\-i \fIVMCOREINFO\fR] \fIVMCORE\fR \fIDUMPFILE1\fR \fIDUMPFILE2\fR [\fIDUMPFILE3\fR ..] +.br +\fBmakedumpfile\fR [\fIOPTION\fR] [\-x \fIVMLINUX\fR|\-i \fIVMCOREINFO\fR] \-\-num\-threads \fITHREADNUM\fR \fIVMCORE\fR \fIDUMPFILE\fR +.br +\fBmakedumpfile\fR \-\-reassemble \fIDUMPFILE1\fR \fIDUMPFILE2\fR [\fIDUMPFILE3\fR ..] \fIDUMPFILE\fR +.br +\fBmakedumpfile\fR \-g \fIVMCOREINFO\fR \-x \fIVMLINUX\fR +.br +\fBmakedumpfile\fR [\fIOPTION\fR] [\-\-xen-syms \fIXEN-SYMS\fR|\-\-xen-vmcoreinfo \fIVMCOREINFO\fR] \fIVMCORE\fR \fIDUMPFILE\fR +.br +\fBmakedumpfile\fR \-\-dump-dmesg [\-\-partial-dmesg] [\-x \fIVMLINUX\fR|\-i \fIVMCOREINFO\fR] \fIVMCORE\fR \fILOGFILE\fR +.br +\fBmakedumpfile\fR [\fIOPTION\fR] \-x \fIVMLINUX\fR \-\-diskset=\fIVMCORE1\fR \-\-diskset=\fIVMCORE2\fR [\-\-diskset=\fIVMCORE3\fR ..] \fIDUMPFILE\fR +.br +.B makedumpfile +\-h +.br +.B makedumpfile +\-v +.br +.SH DESCRIPTION +.PP +With kdump, the memory image of the first kernel (called "panicked kernel") can +be taken as /proc/vmcore while the second kernel (called "kdump kernel" or +"capture kernel") is running. This document represents /proc/vmcore as +\fIVMCORE\fR. makedumpfile makes a small \fIDUMPFILE\fR by compressing dump +data or by excluding unnecessary pages for analysis, or both. makedumpfile +needs the first kernel's debug information, so that it can distinguish +unnecessary pages by analyzing how the first kernel uses the memory. +The information can be taken from \fIVMLINUX\fR or \fIVMCOREINFO\fR. +.PP +makedumpfile can exclude the following types of pages while copying +\fIVMCORE\fR to \fIDUMPFILE\fR, and a user can choose which type of pages will +be excluded. +.br +.B \- Pages filled with zero +.br +.B \- Cache pages without private flag (non-private cache) +.br +.B \- Cache pages with private flag (private cache) +.br +.B \- User process data pages +.br +.B \- Free pages +.PP +makedumpfile provides two \fIDUMPFILE\fR formats (the ELF format and the +kdump\-compressed format). By default, makedumpfile makes a \fIDUMPFILE\fR in +the kdump\-compressed format. The kdump\-compressed format is readable only with +the crash utility, and it can be smaller than the ELF format because of the +compression support. The ELF format is readable with GDB and the crash utility. +If a user wants to use GDB, \fIDUMPFILE\fR format has to be explicitly +specified to be the ELF format. +.PP +Apart from the exclusion of unnecessary pages mentioned above, makedumpfile +allows user to filter out targeted kernel data. The filter config file can +be used to specify kernel/module symbols and its members that need to be +filtered out through the erase command syntax. makedumpfile reads the filter +config and builds the list of memory addresses and its sizes after processing +filter commands. The memory locations that require to be filtered out are +then poisoned with character 'X' (58 in Hex). Refer to +\fBmakedumpfile.conf(5)\fR for file format. +.PP +Eppic macros can also be used to specify kernel symbols and its members that +need to be filtered. Eppic provides C semantics including language constructs +such as conditional statements, logical and arithmetic operators, functions, +nested loops to traverse and erase kernel data. --eppic requires +\fBeppic_makedumpfile.so\fR and eppic library. \fBeppic_makedumpfile.so\fR +can be built from makedumpfile source. Refer to +\fBhttp://code.google.com/p/eppic/\fR to build eppic library \fBlibeppic.a\fR +and for more information on writing eppic macros. +.PP +To analyze the first kernel's memory usage, makedumpfile can refer to +\fIVMCOREINFO\fR instead of \fIVMLINUX\fR. \fIVMCOREINFO\fR contains the first +kernel's information (structure size, field offset, etc.), and \fIVMCOREINFO\fR +is small enough to be included into the second kernel's initrd. +.br +If the second kernel is running on its initrd without mounting a root file +system, makedumpfile cannot refer to \fIVMLINUX\fR because the second kernel's +initrd cannot include a large file like \fIVMLINUX\fR. To solve the problem, +makedumpfile makes \fIVMCOREINFO\fR beforehand, and it refers to +\fIVMCOREINFO\fR instead of \fIVMLINUX\fR while the second kernel is running. +.br +\fIVMCORE\fR has contained \fIVMCOREINFO\fR since linux-2.6.24, and a user does +not need to specify neither -x nor -i option. +.PP +If the second kernel is running on its initrd without mounting any file system, +a user needs to transport the dump data to a remote host. To transport the dump +data by SSH, makedumpfile outputs the dump data in the intermediate format (the +flattened format) to the standard output. By piping the output data to SSH, +a user can transport the dump data to a remote host. Note that analysis tools +(crash utility before version 5.1.2 or GDB) cannot read the flattened format +directly, so on a remote host the received data in the flattened format needs +to be rearranged to a readable \fIDUMPFILE\fR format by makedumpfile (or makedumpfile\-R.pl). +.PP +makedumpfile can read a \fIDUMPFILE\fR in the kdump-compressed format instead +of \fIVMCORE\fR and re-filter it. This feature is useful in situation that +users need to reduce the file size of \fIDUMPFILE\fR for sending it somewhere +by ftp/scp/etc. (If all of the page types, which are specified by a new dump_level, +are excluded from an original \fIDUMPFILE\fR already, a new \fIDUMPFILE\fR is the +same as an original \fIDUMPFILE\fR.) +.br +For example, makedumpfile can create a \fIDUMPFILE\fR of dump_level 31 from the +one of dump_level 3 like the following: +.br +.B Example: +.br +# makedumpfile \-c \-d 3 /proc/vmcore dumpfile.1 +.br +# makedumpfile \-c \-d 31 dumpfile.1 dumpfile.2 +.PP +makedumpfile can read \fIVMCORE\fR(s) in three kinds of sadump +formats: single partition format, diskset format and media backup +format, and can convert each of them into kdump-compressed format with +filtering and compression processing. Note that for \fIVMCORE\fR(s) +created by sadump, you always need to pass \fIVMLINUX\fR with -x +option. Also, to pass multiple \fIVMCORE\fRs created on diskset +configuration, you need to use --diskset option. + +.PP +.SH OPTIONS + +.TP +\fB\-c,\-l,\-p\fR +Compress dump data by each page using zlib for -c option, lzo for -l +option or snappy for -p option. +(-l option needs USELZO=on and -p option needs USESNAPPY=on when building) +.br +A user cannot specify this option with \-E option, because the ELF format does +not support compressed data. +.br +.B Example: +.br +# makedumpfile \-c \-d 31 \-x vmlinux /proc/vmcore dumpfile + +.TP +.BI \-d \ dump_level +Specify the type of unnecessary page for analysis. +.br +Pages of the specified type are not copied to \fIDUMPFILE\fR. The page type +marked in the following table is excluded. A user can specify multiple page +types by setting the sum of each page type for dump_level. The maximum of +dump_level is 31. Note that a dump_level for Xen dump filtering is 0 or 1 on +a machine other than x86_64. On a x86_64 machine, even 2 or bigger dump level +will be effective if you specify domain-0's \fIvmlinux\fR with \-x option. +Then the pages are excluded only from domain-0. +.br +If specifying multiple dump_levels with the delimiter ',', makedumpfile retries +to create a \fIDUMPFILE\fR by other dump_level when "No space on device" error +happens. For example, if dump_level is "11,31" and makedumpfile fails +by dump_level 11, makedumpfile retries it by dump_level 31. +.br +.B Example: +.br +# makedumpfile \-d 11 \-x vmlinux /proc/vmcore dumpfile +.br +# makedumpfile \-d 11,31 \-x vmlinux /proc/vmcore dumpfile +.br +.B Base level: +.br +dump_level consists of five bits, so there are five base levels to specify the type of unnecessary page. +.br + \fB 1\fR : Exclude the pages filled with zero. +.br + \fB 2\fR : Exclude the non-private cache pages. +.br + \fB 4\fR : Exclude all cache pages. +.br + \fB 8\fR : Exclude the user process data pages. +.br + \fB16\fR : Exclude the free pages. + +Here is the all combinations of the bits. + + | |non- | | | + dump | zero |private|private| user | free + level | page |cache |cache | data | page +.br +\-\-\-\-\-\-\-+\-\-\-\-\-\-+\-\-\-\-\-\-\-+\-\-\-\-\-\-\-+\-\-\-\-\-\-+\-\-\-\-\-\- + 0 | | | | | + 1 | X | | | | + 2 | | X | | | + 3 | X | X | | | + 4 | | X | X | | + 5 | X | X | X | | + 6 | | X | X | | + 7 | X | X | X | | + 8 | | | | X | + 9 | X | | | X | + 10 | | X | | X | + 11 | X | X | | X | + 12 | | X | X | X | + 13 | X | X | X | X | + 14 | | X | X | X | + 15 | X | X | X | X | + 16 | | | | | X + 17 | X | | | | X + 18 | | X | | | X + 19 | X | X | | | X + 20 | | X | X | | X + 21 | X | X | X | | X + 22 | | X | X | | X + 23 | X | X | X | | X + 24 | | | | X | X + 25 | X | | | X | X + 26 | | X | | X | X + 27 | X | X | | X | X + 28 | | X | X | X | X + 29 | X | X | X | X | X + 30 | | X | X | X | X + 31 | X | X | X | X | X + + +.TP +\fB\-E\fR +Create \fIDUMPFILE\fR in the ELF format. +.br +This option cannot be specified with the -c, -l or -p options, because +the ELF format does not support compressed data. +.br +.B Example: +.br +# makedumpfile \-E \-d 31 \-x vmlinux /proc/vmcore dumpfile + +.TP +\fB\-f\fR +Force existing DUMPFILE to be overwritten and mem-usage to work with older +kernel as well. +.br +.B Example: +.br +# makedumpfile \-f \-d 31 \-x vmlinux /proc/vmcore dumpfile +.br +This command overwrites \fIDUMPFILE\fR even if it already exists. +.br +# makedumpfile \-f \-\-mem\-usage /proc/kcore +.br +Kernel version lesser than v4.11 will not work with \-\-mem\-usage +functionality until it has been patched with upstream commit 464920104bf7. +Therefore if you have patched your older kernel then use \-f. + +.TP +\fB\-x\fR \fIVMLINUX\fR +Specify the first kernel's \fIVMLINUX\fR with debug information to analyze the +first kernel's memory usage. +.br +This option is necessary if \fIVMCORE\fR does not contain \fIVMCOREINFO\fR, +[\-i \fIVMCOREINFO\fR] is not specified, and dump_level is 2 or more. +.br +The page size of the first kernel and the second kernel should match. +.br +.B Example: +.br +# makedumpfile \-d 31 \-x vmlinux /proc/vmcore dumpfile + +.TP +\fB\-i\fR \fIVMCOREINFO\fR +Specify \fIVMCOREINFO\fR instead of \fIVMLINUX\fR for analyzing the first kernel's memory usage. +.br +\fIVMCOREINFO\fR should be made beforehand by makedumpfile with \-g option, and +it contains the first kernel's information. +.br +This option is necessary if \fIVMCORE\fR does not contain \fIVMCOREINFO\fR, +[\-x \fIVMLINUX\fR] is not specified, and dump_level is 2 or more. +.br +.B Example: +.br +# makedumpfile \-d 31 \-i vmcoreinfo /proc/vmcore dumpfile + +.TP +\fB\-g\fR \fIVMCOREINFO\fR +Generate \fIVMCOREINFO\fR from the first kernel's \fIVMLINUX\fR with debug +information. +.br +\fIVMCOREINFO\fR must be generated on the system that is running the first +kernel. With \-i option, a user can specify \fIVMCOREINFO\fR generated on the +other system that is running the same first kernel. [\-x \fIVMLINUX\fR] must be +specified. +.br +.B Example: +.br +# makedumpfile \-g vmcoreinfo \-x vmlinux + +.TP +\fB\-\-config\fR \fIFILTERCONFIGFILE\fR +Used in conjunction with \-x \fIVMLINUX\fR option, to specify the filter +config file \fIFILTERCONFIGFILE\fR that contains erase commands to filter out +desired kernel data from vmcore while creating \fIDUMPFILE\fR. For filter +command syntax please refer to \fBmakedumpfile.conf(5)\fR. + +.TP +\fB\-\-eppic\fR \fIEPPICMACRO\fR +Used in conjunction with \-x \fIVMLINUX\fR option, to specify the eppic macro +file that contains filter rules or directory that contains eppic macro +files to filter out desired kernel data from vmcore while creating \fIDUMPFILE\fR. +When directory is specified, all the eppic macros in the directory are processed. + +.TP +\fB\-F\fR +Output the dump data in the flattened format to the standard output for +transporting the dump data by SSH. +.br +Analysis tools (crash utility before version 5.1.2 or GDB) cannot read the +flattened format directly. For analysis, the dump data in the flattened format +should be rearranged to a normal \fIDUMPFILE\fR (readable with analysis tools) +by \-R option. By which option is specified with \-F option, the format of the +rearranged \fIDUMPFILE\fR is fixed. +In other words, it is impossible to specify the \fIDUMPFILE\fR format when the +dump data is rearranged with \-R option. If specifying \-E option with \-F option, +the format of the rearranged \fIDUMPFILE\fR is the ELF format. Otherwise, it +is the kdump\-compressed format. All the messages are output to standard error +output by \-F option because standard output is used for the dump data. +.br +.B Example: +.br +# makedumpfile \-F \-c \-d 31 \-x vmlinux /proc/vmcore \e +.br +| ssh user@host "cat > dumpfile.tmp" +.br +# makedumpfile \-F \-c \-d 31 \-x vmlinux /proc/vmcore \e +.br +| ssh user@host "makedumpfile \-R dumpfile" +.br +# makedumpfile \-F \-E \-d 31 \-i vmcoreinfo /proc/vmcore \e +.br +| ssh user@host "makedumpfile \-R dumpfile" +.br +# makedumpfile \-F \-E \-\-xen-vmcoreinfo \fIVMCOREINFO\fR /proc/vmcore \e +.br +| ssh user@host "makedumpfile \-R dumpfile" + +.TP +\fB\-R\fR +Rearrange the dump data in the flattened format from the standard input to a +normal \fIDUMPFILE\fR (readable with analysis tools). +.br +.B Example: +.br +# makedumpfile \-R dumpfile < dumpfile.tmp +.br +# makedumpfile \-F \-d 31 \-x vmlinux /proc/vmcore \e +.br +| ssh user@host "makedumpfile \-R dumpfile" + +Instead of using \-R option, a perl script "makedumpfile\-R.pl" rearranges the +dump data in the flattened format to a normal \fIDUMPFILE\fR, too. The perl +script does not depend on architecture, and most systems have perl command. +Even if a remote host does not have makedumpfile, it is possible to rearrange +the dump data in the flattened format to a readable \fIDUMPFILE\fR on a remote +host by running this script. +.br +.B Example: +.br +# makedumpfile \-F \-d 31 \-x vmlinux /proc/vmcore \e +.br +| ssh user@host "makedumpfile\-R.pl dumpfile" + +.TP +\fB\-\-split\fR +Split the dump data to multiple \fIDUMPFILE\fRs in parallel. If specifying +\fIDUMPFILE\fRs on different storage devices, a device can share I/O load +with other devices and it reduces time for saving the dump data. The file +size of each \fIDUMPFILE\fR is smaller than the system memory size which +is divided by the number of \fIDUMPFILE\fRs. This feature supports only +the kdump\-compressed format. +.br +.B Example: +.br +# makedumpfile \-\-split \-d 31 \-x vmlinux /proc/vmcore dumpfile1 dumpfile2 + +.TP +\fB\-\-num\-threads\fR \fITHREADNUM\fR +Using multiple threads to read and compress data of each page in parallel. +And it will reduces time for saving \fIDUMPFILE\fR. +Note that if the usable cpu number is less than the thread number, it may +lead to great performance degradation. +This feature only supports creating \fIDUMPFILE\fR in kdump\-comressed +format from \fIVMCORE\fR in kdump\-compressed format or elf format. +.br +.B Example: +.br +# makedumpfile \-d 31 \-\-num\-threads 4 /proc/vmcore dumpfile + +.TP +\fB\-\-reassemble\fR +Reassemble multiple \fIDUMPFILE\fRs, which are created by \-\-split option, +into one \fIDUMPFILE\fR. dumpfile1 and dumpfile2 are reassembled into dumpfile +on the following example. +.br +.B Example: +.br +# makedumpfile \-\-reassemble dumpfile1 dumpfile2 dumpfile + +.TP +\fB\-b\fR \fI<order>\fR +Cache 2^order pages in ram when generating \fIDUMPFILE\fR before writing to output. +The default value is 4. + +.TP +\fB\-\-cyclic\-buffer\fR \fIbuffer_size\fR +Specify the buffer size in kilo bytes for bitmap data. +Filtering processing will be divided into multi cycles to fix the memory consumption, +the number of cycles is represented as: + + num_of_cycles = system_memory / (\fIbuffer_size\fR * 1024 * bit_per_bytes * page_size ) + +The lesser number of cycles, the faster working speed is expected. +By default, \fIbuffer_size\fR will be calculated automatically depending on system memory +size, so ordinary users don't need to specify this option. + +.br +.B Example: +.br +# makedumpfile \-\-cyclic\-buffer 1024 \-d 31 \-x vmlinux /proc/vmcore dumpfile + +.TP +\fB\-\-splitblock\-size\fR \fIsplitblock_size\fR +Specify the splitblock size in kilo bytes for analysis with --split. +If --splitblock N is specified, difference of each splitted dumpfile size is at most N +kilo bytes. +.br +.B Example: +.br +# makedumpfile \-\-splitblock\-size 1024 \-d 31 \-x vmlinux \-\-split /proc/vmcore dumpfile1 dumpfile2 + +.TP + +\fB\-\-work\-dir\fR +Specify the working directory for the temporary bitmap file. +If this option isn't specified, the bitmap will be saved on memory. +Filtering processing has to do 2 pass scanning to fix the memory consumption, +but it can be avoided by using working directory on file system. +So if you specify this option, the filtering speed may be bit faster. + +.br +.B Example: +.br +# makedumpfile \-\-work\-dir /tmp \-d 31 \-x vmlinux /proc/vmcore dumpfile + +.TP +\fB\-\-non\-mmap\fR +Never use \fBmmap(2)\fR to read \fIVMCORE\fR even if it supports \fBmmap(2)\fR. +Generally, reading \fIVMCORE\fR with \fBmmap(2)\fR is faster than without it, +so ordinary users don't need to specify this option. +This option is mainly for debugging. +.br +.B Example: +.br +# makedumpfile \-\-non\-mmap \-d 31 \-x vmlinux /proc/vmcore dumpfile + +.TP +\fB\-\-xen-syms\fR \fIXEN-SYMS\fR +Specify the \fIXEN-SYMS\fR with debug information to analyze the xen's memory usage. +This option extracts the part of xen and domain-0. +.br +.B Example: +.br +# makedumpfile \-E \-\-xen-syms xen-syms /proc/vmcore dumpfile + +.TP +\fB\-\-xen-vmcoreinfo\fR \fIVMCOREINFO\fR +Specify \fIVMCOREINFO\fR instead of \fIXEN-SYMS\fR for analyzing the xen's memory usage. +.br +\fIVMCOREINFO\fR should be made beforehand by makedumpfile with \-g option, and +it contains the xen's information. +.br +.B Example: +.br +# makedumpfile \-E \-\-xen-vmcoreinfo \fIVMCOREINFO\fR /proc/vmcore dumpfile + +.TP +\fB\-X\fR +Exclude all the user domain pages from Xen kdump's \fIVMCORE\fR, and extracts the +part of xen and domain-0. If \fIVMCORE\fR contains \fIVMCOREINFO\fR for Xen, it is +not necessary to specify \fI\-\-xen-syms\fR and \fI\-\-xen-vmcoreinfo\fR. +.br +.B Example: +.br +# makedumpfile \-E \-X /proc/vmcore dumpfile + +.TP +\fB\-\-xen_phys_start\fR \fIxen_phys_start_address\fR +This option is only for x86_64. +Specify the \fIxen_phys_start_address\fR, if the xen code/data is relocatable +and \fIVMCORE\fR does not contain \fIxen_phys_start_address\fR in the CRASHINFO. +\fIxen_phys_start_address\fR can be taken from the line of "Hypervisor code +and data" in /proc/iomem. For example, specify 0xcee00000 as \fIxen_phys_start_address\fR +if /proc/iomem is the following: + ------------------------------------------------------- + # cat /proc/iomem + ... + cee00000-cfd99999 : Hypervisor code and data + ... + ------------------------------------------------------- + +.br +.B Example: +.br +# makedumpfile \-E \-X \-\-xen_phys_start 0xcee00000 /proc/vmcore dumpfile + +.TP +\fB\-\-message-level\fR \fImessage_level\fR +Specify the message types. +.br +Users can restrict outputs printed by specifying \fImessage_level\fR +with this option. The message type marked with an X in the following +table is printed. For example, according to the table, specifying 7 as +\fImessage_level\fR means progress indicator, common message, and error +message are printed, and this is a default value. Note that the maximum +value of \fImessage_level\fR is 31. +.br + + message | progress | common | error | debug | report + level | indicator| message | message | message | message +.br +\-\-\-\-\-\-\-\-\-+\-\-\-\-\-\-\-\-\-\-+\-\-\-\-\-\-\-\-\-+\-\-\-\-\-\-\-\-\-+\-\-\-\-\-\-\-\-\-+\-\-\-\-\-\-\-\-\- + 0 | | | | | + 1 | X | | | | + 2 | | X | | | + 3 | X | X | | | + 4 | | | X | | + 5 | X | | X | | + 6 | | X | X | | + * 7 | X | X | X | | + 8 | | | | X | + 9 | X | | | X | + 10 | | X | | X | + 11 | X | X | | X | + 12 | | | X | X | + 13 | X | | X | X | + 14 | | X | X | X | + 15 | X | X | X | X | + 16 | | | | | X + 17 | X | | | | X + 18 | | X | | | X + 19 | X | X | | | X + 20 | | | X | | X + 21 | X | | X | | X + 22 | | X | X | | X + 23 | X | X | X | | X + 24 | | | | X | X + 25 | X | | | X | X + 26 | | X | | X | X + 27 | X | X | | X | X + 28 | | | X | X | X + 29 | X | | X | X | X + 30 | | X | X | X | X + 31 | X | X | X | X | X + +.TP +\fB\-\-vtop\fR \fIvirtual_address\fR +This option is useful, when user debugs the translation problem +of virtual address. If specifing \fIvirtual_address\fR, its physical +address is printed. It makes debugging easy by comparing the +output of this option with the one of "vtop" subcommand of the +crash utility. +"--vtop" option only prints the translation output, and it does +not affect the dumpfile creation. + +.TP +\fB\-\-dump-dmesg\fR +This option overrides the normal behavior of makedumpfile. Instead of +compressing and filtering a \fIVMCORE\fR to make it smaller, it simply +extracts the dmesg log from a \fIVMCORE\fR and writes it to the specified +\fILOGFILE\fR. If a \fIVMCORE\fR does not contain \fIVMCOREINFO\fR for dmesg, +it is necessary to specfiy [\-x \fIVMLINUX\fR] or [\-i \fIVMCOREINFO\fR]. + +.br +.B Example: +.br +# makedumpfile \-\-dump-dmesg /proc/vmcore dmesgfile +.br +# makedumpfile \-\-dump-dmesg -x vmlinux /proc/vmcore dmesgfile +.br + + +.TP +\fB\-\-partial-dmesg\fR +This option will make --dump-dmesg extract only dmesg logs since that buffer was +last cleared on the crashed kernel, through "dmesg --clear" for example. + + +.TP +\fB\-\-mem-usage\fR +This option is currently supported on x86_64, arm64, ppc64 and s390x. +This option is used to show the page numbers of current system in different +use. It should be executed in 1st kernel. By the help of this, user can know +how many pages is dumpable when different dump_level is specified. It analyzes +the 'System Ram' and 'kernel text' program segment of /proc/kcore excluding +the crashkernel range, then calculates the page number of different kind per +vmcoreinfo. So currently /proc/kcore need be specified explicitly. + +.br +.B Example: +.br +# makedumpfile \-\-mem-usage /proc/kcore +.br + + +.TP +\fB\-\-diskset=VMCORE\fR +Specify multiple \fIVMCORE\fRs created on sadump diskset configuration +the same number of times as the number of \fIVMCORE\fRs in increasing +order from left to right. \fIVMCORE\fRs are assembled into a single +\fIDUMPFILE. + +.br +.B Example: +.br +# makedumpfile \-x vmlinux \-\-diskset=vmcore1 \-\-diskset=vmcore2 dumpfile + +.TP +\fB\-D\fR +Print debugging message. + +.TP +\fB\-h (\-\-help)\fR +Show help message and LZO/snappy support status (enabled/disabled). + +.TP +\fB\-v\fR +Show the version of makedumpfile. + +.SH ENVIRONMENT VARIABLES + +.TP 8 +.B TMPDIR +This environment variable is used in 1st kernel environment for a temporary memory bitmap file. +If your machine has a lots of memory and you use small tmpfs on /tmp, makedumpfile +can fail for a little memory because makedumpfile makes a very large temporary +memory bitmap file in this case. To avoid this failure, you should specify +--work-dir option to use file system on storage for the bitmap file. + +.SH DIAGNOSTICS +makedumpfile exits with the following value. +.TP +\fB0\fR : makedumpfile succeeded. +.TP +\fB1\fR : makedumpfile failed without the following reasons. +.TP +\fB2\fR : makedumpfile failed due to the different version between \fIVMLINUX\fR and \fIVMCORE\fR. + +.SH AUTHORS +.PP +Written by Masaki Tachibana, and Ken'ichi Ohmichi. + +.SH SEE ALSO +.PP +crash(8), gdb(1), kexec(8), makedumpfile.conf(5) + |