[Crash-utility] wrong values shown by kmem -s

Dave Anderson anderson at redhat.com
Tue Apr 12 12:48:10 UTC 2016



----- Original Message -----
> >
> > While this is an improvement over your last post, there are still issues
> > with this patchset.  I've been testing it with a wide range of stashed
> > vmcores, and I see problems with all of the old 2.6.24 vmcores.  Those
> > kernels used an early version of CONFIG_SLUB which did not even have
> > the kmem_cache_node.total_objects field.  However, given that the
> > kmem_cache_node.total_objects field is encapsulated within CONFIG_SLUB_DEBUG,
> > presumably the same problem would occur with a more recent kernel
> > if it was *not* configured with CONFIG_SLUB_DEBUG.
> >
> I have tried to fix this in the attached new version (and have done a rebase),
> but could not confirm that it fixes the problem, since I do not have a vmcore without total_objects,
> and with CONFIG_SLUB_DEBUG disabled "kmem -s" does not work.
> 
> crash> kmem -s
> kmem: option requires kmem_cache_node.nr_slabs member!
> (the kernel must be built with CONFIG_SLUB_DEBUG)

In your test code, you could simply NOT initialize the total_objects offset
and see what happens. 

Dave


> >
> > Other nits:
> >
> > Please fix these:
> >
> > $ make warn
> > ... [ cut ] ...
> > cc -c -g -DX86_64 -DLZO -DSNAPPY -DGDB_7_6  memory.c -Wall -O2
> > -Wstrict-prototypes -Wmissing-prototypes -fstack-protector
> > -Wformat-security
> > memory.c:17916:7: warning: no previous prototype for 'count_cpu_partial'
> > [-Wmissing-prototypes]
> >  short count_cpu_partial(struct meminfo *si, int cpu)
> >        ^
> > memory.c: In function 'get_kmem_cache_slub_data':
> > memory.c:17982:15: warning: unused variable 'free' [-Wunused-variable]
> >   short inuse, free;
> > ...
> Done
> 
> >
> >
> > In defs.h, please put the kmem_cache_node_total_objects offset_table entry
> > at the end
> > of the structure so that it won't break extension modules that haven't been
> > recompiled.
> 
> Done
> 
> >
> > And lastly, add the display of the kmem_cache_node_total_objects offset to
> > the
> > dump_offset_table() function in symbols.c, which is used by "help -o".
> > That would
> > be especially helpful in this case so a user can verify whether the field
> > even
> > exists in the kernel being analyzed.  You can put its output line next to
> > the other
> > kmem_cache_node offsets.
> >
> Done
> 
> Thanks,
> Vinayak
> 
> --
> Crash-utility mailing list
> Crash-utility at redhat.com
> https://www.redhat.com/mailman/listinfo/crash-utility




More information about the Crash-utility mailing list