Tool for creating full vmcore

Vivek Goyal vgoyal at redhat.com
Wed Feb 12 16:42:57 EST 2014


On Wed, Feb 12, 2014 at 02:21:23PM -0600, Corey Minyard wrote:
> Hello,
> 
> I've written a tool that takes an coredump of physical kernel memory and
> converts it to a coredump of virtual kernel memory that can be directly
> used by gdb to debug a kernel.

I am wondering where is it useful. So you find using gdb on kernel
core give you better experience as compared to crash which is fully
tailored to kernel debugging only?

What about dump filtering? Now a days we use makedumpfile by default
and makedumpfile has its own format for dump files which crash
understands.

I guess gdb will not work with makedumpfile format files. If that's the
case, that means this tool will work with unfiltered core files and
generate unfiltered core files. I think working with unfiltered core
files is not very practical now a days given large amount of RAM
machines typically tend to have.

Thanks
Vivek

> 
> I was trying to use /proc/vmcore, but that did not include any of
> vmalloc memory or vmemmap, which made it kind of useless.  I thought
> about adding all that to the vmcore, but that didn't seem like the
> proper way to do things.
> 
> The tool is at https://github.com/cminyard/kdump-tool
> 
> It can create a physical memory coredump (like the kdump tool) and a
> virtual memory coredump (either from a physical memory one, or directly
> from /proc/vmcore and /dev/mem).
> 
> Two kernel patches are in the "kernel-patches" directory of the tool, on
> the master branch:
> 
> One adds the valid physical memory ranges to the notes in the core
> file.  Memory doesn't always start from zero, some systems have more
> than one OS running on the same hardware,  and memory often has holes
> and places that are bad to read from.  It seems prudent to pass in these
> ranges so the coredump is only the memory required.  It also adds the
> physical address of the kernel page directory to the notes, so it can
> parse the page tables.
> 
> The other is MIPS specific.  You need a whole bunch of information about
> the configuration to parse the MIPS page tables.
> 
> One cool thing this should be able to do is create a coredump for
> userspace processes.  You can look into kernel memory to find the page
> table and pass that in to the tool.  It should be able to extract the
> process' resident memory from a physical coredump.  Of course, it will
> only dump resident memory, anything on disk will not be there.
> 
> Is this interesting to the kdump community?  I'd like to include it in
> kexec, if possible.
> 
> Thanks,
> 
> -corey
> 
> _______________________________________________
> kexec mailing list
> kexec at lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/kexec



More information about the kexec mailing list