[Crash-utility] earlier patch introducing the --kaslr option

Dave Anderson anderson at redhat.com
Tue Feb 11 14:25:17 UTC 2014



----- Original Message -----
> On Mon, Feb 10, 2014 at 2:11 PM, Dave Anderson <anderson at redhat.com> wrote:
> >
> > Hi Andy,
> >
> > I've got a ELF kdump vmcore that was created in-house from a kernel configured
> > with CONFIG_RANDOMIZE_BASE.  I thought I might be able to analyze it by applying
> > your earlier patch that introduced the --kaslr option.  The kernel does not
> > have the offset registered in the vmcoreinfo, and so I'm trying to determine
> > the offset, but with no luck.
> >
> > Earlier, Kees had mentioned this:
> >
> >>> FWIW, the offset reported during a panic to dmesg is:
> >>>     (unsigned long)&_text - __START_KERNEL
> >
> > Where does it get reported during a panic exactly?  Here's the oops trace, gotten
> > by running "strings" on the vmcore:
> 
> The commit that reports it is here: f32360ef6608434a032dc7ad262d45e9693c27f3
> 
> And maybe related, but 6723734cdff15211bb78aeea76ca847374bd93ae makes
> sure panic handlers are called before kmsg_dump.
>
> And "strings" doesn't show anything starting with "Kernel Offset:" ?
> Maybe it's not being saved in the kcore?

Correct:

  $ strings vmcore | grep 'Kernel Offset'
  0Kernel Offset: 0x%lx from 0x%lx (relocation range: 0x%lx-0x%lx)
  0Kernel Offset: 0x%lx from 0x%lx (relocation range: 0x%lx-0x%lx)
  $ 

And that's because when kdump is enabled, crash_kexec() does not return:

 void panic(const char *fmt, ...)
 {
 ... [ cut ] ...
 
         /*
          * If we have crashed and we have a crash kernel loaded let it handle
          * everything else.
          * Do we want to call this before we try to display a message?
          */
         crash_kexec(NULL);
 
         /*
          * Note smp_send_stop is the usual smp shutdown function, which
          * unfortunately means it may not be hardened to work in a panic
          * situation.
          */
         smp_send_stop();
 
         /*
          * Run any panic handlers, including those that might need to
          * add information to the kmsg dump output.
          */
         atomic_notifier_call_chain(&panic_notifier_list, 0, buf);
 
         kmsg_dump(KMSG_DUMP_PANIC);
 
 ...

So for kdump, the panic_notifier_list is useless.  That's why the vmcoreinfo
addition is necessary.

Dave




More information about the Crash-utility mailing list