Re: source line numbers with x86_64 modules? [Was: Re: [patch] measurements, numbers about CONFIG_OPTIMIZE_INLINING=y impact]

Mike Snitzer
2009-01-11T04:52:11Z

On Sat, Jan 10, 2009 at 8:28 PM, Ingo Molnar <mingo@elte.hu> wrote:
>
> Note, back when kdump was added to the kernel many moons ago i strongly
> supported it and helped out with the patches, etc. I still think it might
> have the potential to become big - but it needs a ton of tech and care to
> reach that level of convenience.
>
> 'kdump light' perhaps that dumps the most important data structures like
> registers of all CPUs, task struct and the symbol tables, the current task
> itself including the kernel stack plus the surrounding 4K of all pointers
> that are in current registers and that point into kernel memory - maybe
> straight to kerneloops.org [if the user agrees] - or something like that.

I think 'kdump light' is a good idea. I'm all for infrastructure that
works better for more people. Having to deal with multi-gigabyte dump
files can be a chore.

The mechanics of dumping your suggested 'light' amount of data vs. all
memory should be configurable (e.g. /sys/kernel/kexec_crash_light).
And this obviously doesn't change the potentially fragile nature of
kexec'ing to a crash kernel from an arbitrary context; or the fact
that drivers can easily be incompatible with cleanly shutting down and
restarting on kexec.

I worked with Eric Biederman testing in the early days of his kexec
work and the e1000 driver was incompatible with kexec at that time
(IFF it was built into the kernel, workaround was to use a module and
unload it before kexec, *shudder*; I was using kexec in a custom
bootloader for a storage appliance, not for kdump).

But honestly 99+% of my filesystem/storage enduced Linux crashes
kexec/kdump properly (with RHEL5, 2.6.22, 2.6.25, and 2.6.28); so all
the hard work of people like yourself and other kexec/kdump hackers
(upstream and at RedHat) really is paying off for real Linux users!

The fairly recent kvm kdump compatibility work (2340b62f) is a perfect
example of how hard things can be. But it is encouraging to see such
commendable effort being put to making kdump workable for all.

Now if only I could fix line numbers when debugging crashes in x86_64
modules with the crash utility! :)

Regards,
Mike