On Thu, Jan 09, 2014 at 11:40:59AM -0500, Dave Anderson wrote: > > > ----- Original Message ----- > > > > Version 2 > > - Moves the warning to this point: > > ... > > This GDB was configured as "x86_64-unknown-linux-gnu"... > > > > WARNING: All unused vmemmap page structures are excluded from this > > dump. > > This will cause failures of the kmem command if it attempts to > > walk any list of free pages (with options -f -F -i -s and -S). > > > > SYSTEM MAP: /boot/System.map-2.6.32-cpw > > ... > > > > - Drop patch 2, which added warnings to individual kmem options. > > > > - Feel free to change the wording of the warning. > > > > And this patch is contingent upon the acceptance of a change to the > > makedumpfile command. > > http://marc.info/?l=kexec&m=138853299130125&w=2 > > > > > > If makedumpfile excludes unused page structures it will flag that > > fact in the dump header. > > (There are about 3.67 million pages full of page structures for > > every tera byte of system memory. The great bulk of those > > page structures are not needed.) > > Their exclusion is a makedumpfile option. > > > > Crash will display a note during initialization if such structures > > have been excluded. Crash commands that walk page freelists, for > > example, will fail. So the note will help the user understand why. > > > > Signed-off-by: Cliff Wickman <cpw@xxxxxxx> > > --- > > defs.h | 1 + > > diskdump.c | 3 +++ > > diskdump.h | 1 + > > main.c | 6 ++++++ > > 4 files changed, 11 insertions(+) > > > > Index: crash-7.0.4/diskdump.c > > =================================================================== > > --- crash-7.0.4.orig/diskdump.c > > +++ crash-7.0.4/diskdump.c > > @@ -749,6 +749,9 @@ restart: > > dd->valid_pages[i]++; > > } > > > > + if (header->status & DUMP_DH_EXCLUDED_VMEMMAP) > > + pc->flags2 |= VMEXCLUDED; > > + > > return TRUE; > > > > err: > > Index: crash-7.0.4/diskdump.h > > =================================================================== > > --- crash-7.0.4.orig/diskdump.h > > +++ crash-7.0.4/diskdump.h > > @@ -84,6 +84,7 @@ struct kdump_sub_header { > > #define DUMP_DH_COMPRESSED_ZLIB 0x1 /* page is compressed with zlib */ > > #define DUMP_DH_COMPRESSED_LZO 0x2 /* page is compressed with lzo */ > > #define DUMP_DH_COMPRESSED_SNAPPY 0x4 /* page is compressed with snappy > > */ > > +#define DUMP_DH_EXCLUDED_VMEMMAP 0x8 /* unused vmemmap pages are > > excluded */ > > > > /* descriptor of each page for vmcore */ > > typedef struct page_desc { > > Index: crash-7.0.4/defs.h > > =================================================================== > > --- crash-7.0.4.orig/defs.h > > +++ crash-7.0.4/defs.h > > @@ -505,6 +505,7 @@ struct program_context { > > #define VMCOREINFO (0x400ULL) > > #define ALLOW_FP (0x800ULL) > > #define REM_PAUSED_F (0x1000ULL) > > +#define VMEXCLUDED (0x2000ULL) > > #define REMOTE_PAUSED() (pc->flags2 & REM_PAUSED_F) > > char *cleanup; > > char *namelist_orig; > > Index: crash-7.0.4/main.c > > =================================================================== > > --- crash-7.0.4.orig/main.c > > +++ crash-7.0.4/main.c > > @@ -662,6 +662,12 @@ main_loop(void) > > } else > > SIGACTION(SIGINT, restart, &pc->sigaction, NULL); > > > > + if (pc->flags2 & VMEXCLUDED) > > + fprintf(fp, > > + "WARNING: All unused vmemmap page structures are excluded from this dump.\n" > > + " This will cause failures of the kmem command if it attempts to\n" > > + " walk any list of free pages (with options -f -F -i -s and -S).\n\n"); > > + > > /* > > * Display system statistics and current context. > > */ > > > > This patch looks reasonable. > > BTW, what happens if you enter "kmem <address>" alone with no option? > It should fail as well, no? Yes, it does. crash> kmem 133360 kmem: page excluded: kernel virtual address: ffffea0000004350 type: "page.lru.next" crash> kmem ffff8897baae7540 CACHE NAME OBJSIZE ALLOCATED TOTAL SLABS SSIZE ffff88c7bec70040 task_struct 2656 4578 5361 1787 8k SLAB MEMORY TOTAL ALLOCATED FREE ffff8897baae6040 ffff8897baae6080 3 2 1 FREE / [ALLOCATED] [ffff8897baae7540] kmem: page excluded: kernel virtual address: ffffea0000007028 type: "first list entry" Another way to search a freelist, that I didn't notice. Do you want to add that to the warning? -Cliff -- Cliff Wickman SGI cpw@xxxxxxx (651) 683-3824 -- Crash-utility mailing list Crash-utility@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/crash-utility