On Tue, Feb 18, 2014 at 12:27 PM, Dave Anderson
<anderson(a)redhat.com> wrote:
>
>
> ----- Original Message -----
>> >
>> > But if I try that value with your patch applied, it fails in the same
>> > manner
>> > as if I don't use the --kaslr option at all:
>> >
>> > $ crash --kaslr 0x19000000 vmlinux vmcore
>> >
>> > crash 7.0.5rc12
>> > Copyright (C) 2002-2014 Red Hat, Inc.
>> > Copyright (C) 2004, 2005, 2006, 2010 IBM Corporation
>> > Copyright (C) 1999-2006 Hewlett-Packard Co
>> > Copyright (C) 2005, 2006, 2011, 2012 Fujitsu Limited
>> > Copyright (C) 2006, 2007 VA Linux Systems Japan K.K.
>> > Copyright (C) 2005, 2011 NEC Corporation
>> > Copyright (C) 1999, 2002, 2007 Silicon Graphics, Inc.
>> > Copyright (C) 1999, 2000, 2001, 2002 Mission Critical Linux, Inc.
>> > This program is free software, covered by the GNU General Public
>> > License,
>> > and you are welcome to change it and/or distribute copies of it under
>> > certain conditions. Enter "help copying" to see the
conditions.
>> > This program has absolutely no warranty. Enter "help warranty"
for
>> > details.
>> >
>> > GNU gdb (GDB) 7.6
>> > Copyright (C) 2013 Free Software Foundation, Inc.
>> > License GPLv3+: GNU GPL version 3 or later
>> > <
http://gnu.org/licenses/gpl.html>
>> > This is free software: you are free to change and redistribute it.
>> > There is NO WARRANTY, to the extent permitted by law. Type "show
>> > copying"
>> > and "show warranty" for details.
>> > This GDB was configured as "x86_64-unknown-linux-gnu"...
>> >
>> > WARNING: could not find MAGIC_START!
>> > WARNING: cannot read linux_banner string
>> > crash: vmlinux and vmcore do not match!
>> >
>> > Usage:
>> >
>> > crash [OPTION]... NAMELIST MEMORY-IMAGE (dumpfile form)
>> > crash [OPTION]... [NAMELIST] (live system form)
>> >
>> > Enter "crash -h" for details.
>> > $
>> >
>> > Any ideas? I can give you the vmlinux/vmcore/kallsyms triplet if
you'd
>> > like.
>>
>> As far as why the offset wasn't present, sorry about that. I guess
>> our tool chain is a bit more different than upstream, I've had a bit
>> of trouble generating kdump files for upstream.
>>
>> Your manual calculations look correct to me though and it should work.
>> If you can send me the vmlinux/vmcore triplet (I don't think I need
>> the kallsyms) then I will look at this today. Can you post it
>> somewhere I can download it?
>>
>> Sorry for the delay I was on vacation.
>>
>> thanks,
>> Andy
>
> Actually you do need the kallsyms...
>
> As I mentioned to Kees in an earlier message, the display of
> the offset in the kernel log will not be done in the case of
> kdump-enabled kernels, because crash_kexec() is called before
> the panic_notifier list is executed, and crash_kexec() does
> not return.
>
> I've put the triplet here:
>
>
http://people.redhat.com/anderson/kaslr
>
> Note that we can only create ELF vmcores with kASLR because the
> makedumpfile
> facility also needs to be fixed to handle kASLR kernels.
>
> Anyway, as it turns out, the offset is not 0x19000000 (&_text -
> __START_KERNEL),
> but rather it is 0x18000000, which is the difference between the
> kallsyms symbol values and those compiled into the vmlinux file.
> With that --kaslr offset value, the crash session comes up OK.
Oh, hm. Is the difference maybe due to CONFIG_PHYSICAL_START some how?
-Kees
Right -- I didn't create the kernel, but I presume both CONFIG_PHYSICAL_START
and CONFIG_PHYSICAL_ALIGN are both 16MB, resulting in:
$ grep _text kallsyms | head -1
ffffffff99000000 T _text
$ nm -Bn vmlinux | grep _text | head -1
ffffffff81000000 T _text
$
Dave