Ken'ichi Ohmichi wrote: > Hi. > On 2006/04/24 11:28:28 -0400, Vivek Goyal <[EMAIL PROTECTED]> wrote: > >To begin with probably you can keep those values for newly created headers > >but eventually we need this utility to walk through the page tables or > >vm list to fill those headers with appropriate virtual addresses so that > >gdb can do module debugging as well. And walking through the data structures > OK. I specified 0xffffffffffffffff for virtual addresses in all the segments. > In the future, we need to get a structure size and a field offset for walking > through the page tables or vm list. > > I added an ELF dump option(-E) to the "partial dump" command. The command > doesn't need the map_file, and it will exclude pages when it finds 256 > consecutive pages filled with zero. When using crash to analyze the ELF dump > file, an error occurs when trying to access the content of the pages excluded > from the ELF file. This problem does not occur using gdb. I'm not sure if this > is a bug or a feature. >
>From the crash utility point of view, this is what happens: For netdump, kdump, and diskdump-without-compression ELF vmcores, if the requested physical address is not accounted for in the ELF header, the read attempt fails. For diskdump-with-compression (not ELF, but a diskdump-specific format), if an attempt is made to read a physical address that is not in the dumpfile, it returns a zero-filled page. Dave > > The new command operates only on linux2.6.15.1(or 2.6.15.4), i386. > > Changelog: > - add ELF dump option(-E). > - enable to exclude only page filled by zero without a map_file. > > Usage: > makedumpfile [-c] [-d dump_level] [-E] [map_file] dump_mem dump_file > > Description: > [-c]: > This option enables the compression function of each page. > [-d dump_level]: > The excluding page is specified by this value. > [-E]: > Create the ELF dumpfile. > [map_file]: > This is a pathname to a system.map file of first-kernel. > dump_mem: > This is a pathname to a first-kernel memory core image. > dump_file: > This is a pathname to a filename created by this command. > > Example 1: > If you want to create an ELF dump file exclusing pages filled by zero, > please execute the following command. > > # makedumpfile -E -d 1 /proc/vmcore dumpfile > > Example 2: > If you want to exclude pages filled by zero, cache pages and user pages, > and to enable compression, please execute the following command. > > # makedumpfile -c -d 15 /boot/System.map /proc/vmcore dumpfile > > TODO: > 1. get a structure size and a field offset. > There are two methods. > - implement the gdb feature getting the debug information from > vmlinux (with -g). > - change systemcall to bury above information into the PT_NOTE > segment. > 2. get the memory management information from the symbol "pgdat_list". > 3. exclude free pages. > 4. (i386) fill PT_LOAD headers with appropriate virtual addresses. > > Test environment: > I confirmed this command operated in the following environment. > --------------------------------------------- > arch : i386smp > memory: 1GB > kernel: 2.6.15.1 > crash : crash-4.0-2.22 > panic : echo c > /proc/sysrq-trigger > load : nothing > --------------------------------------------- > > Test result: > The following result was measured on an i386smp server when the system > was idle. > ----------------------------------------- > format |level |compress |file_size(MB) > ----------+------+---------+------------- > "vmcore" | - | - | 1,007 > ELF | 1 | off | 230 > diskdump | 1 | off | 230 > diskdump | 1 | on | 96 > ELF | 15 | off | 180 > diskdump | 15 | off | 87 > diskdump | 15 | on | 36 > ----------------------------------------- > > level 1 : Exclude zero pages. > level 15 : Exclude zero pages, cache pages, and user process data pages. > compress off: disable the compression function of each page. > compress on: enable the compression function of each page. > > Thanks > Ken'ichi Ohmichi > > > ------------------------------------------------------------------------------------------------------------------------ > Name: makedumpfile.tar.gz > makedumpfile.tar.gz Type: Unix Tape Archive (application/x-tar) > Encoding: base64
_______________________________________________ fastboot mailing list [email protected] https://lists.osdl.org/mailman/listinfo/fastboot
