Re: [PATCH v6 14/14] x86: kdebugfs do not use __va for getting setup_data virt addr

Dave Young
2013-12-17T06:53:46Z

On 12/17/13 at 02:24pm, Dave Young wrote:
> On 12/16/13 at 04:35pm, Matt Fleming wrote:
> > On Mon, 16 Dec, at 05:30:35PM, Dave Young wrote:
> > > kdump kernel will use memmap=exactmap kernel cmdline, but __va does not
> > > work in case memmap=exactmap, so let's always use ioremap_cache.
> > >
> > > Signed-off-by: Dave Young <dyoung-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
> > > ---
> > > arch/x86/kernel/kdebugfs.c | 35 +++++++++++------------------------
> > > 1 file changed, 11 insertions(+), 24 deletions(-)
> >
> > Dave, I've no idea why this change is necessary from the commit log. Is
> > it required for kexec to function on EFI? Why does __va() not work in
> > the memmap=exactmap case?
> >
>
> During previous kdump tests I saw panics while reading the setup_data in debugfs.
> I thought it is caused by some unmapped addresses. At that time I also reproduced
> it by booting the non-kexec kernel with memmap=exact.
>
> Since you are asking about this I'm testing it again but I seems can not
> reproduce this problem any more, it's weird.
>
> I should dug more about it and save the panic messages.
>
> So let's drop this patch for now, I will keep an eye on this and address it later
> if I can find the problem again.

Reproduced it again in normal boot with memmap=exactmap, but I agree it's a corner
case, I remember I saw this in kdump kernel, but I still did not see it in today's
testing so I think move this issue out of this patch series is fine to me.

[ 0.359467] BUG: unable to handle kernel paging request at ffff8800d5592020
[ 0.359472] IP: [<ffffffff817dbdbc>] arch_kdebugfs_init+0x11a/0x201
[ 0.359474] PGD 316b067 PUD 37031063 PMD 0
[ 0.359476] Oops: 0000 [#1] PREEMPT SMP
[ 0.359477] Modules linked in:
[ 0.359480] CPU: 1 PID: 1 Comm: swapper/0 Not tainted 3.13.0-rc3+ #65
[ 0.359481] Hardware name: Hewlett-Packard HP Z420 Workstation/1589, BIOS J61 v03.15 05/09/2013
[ 0.359482] task: ffff880037022000 ti: ffff880037188000 task.ti: ffff880037188000
[ 0.359484] RIP: 0010:[<ffffffff817dbdbc>] [<ffffffff817dbdbc>] arch_kdebugfs_init+0x11a/0x201
[ 0.359485] RSP: 0000:ffff880037189e30 EFLAGS: 00010286
[ 0.359486] RAX: ffff8800372e30e0 RBX: ffff8800372e30e0 RCX: 0000000000000191
[ 0.359486] RDX: 0000000000000000 RSI: ffffffff8168a39e RDI: ffff880037189e50
[ 0.359487] RBP: ffff880037189e90 R08: ffff8800372e30e0 R09: 0000000000000000
[ 0.359488] R10: 0000000000000000 R11: 0000000000000000 R12: ffff88003640aea0
[ 0.359489] R13: 00000000d5592018 R14: ffff88003640b200 R15: ffff8800d5592018
[ 0.359490] FS: 0000000000000000(0000) GS:ffff880037480000(0000) knlGS:0000000000000000
[ 0.359491] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[ 0.359491] CR2: ffff8800d5592020 CR3: 0000000002716000 CR4: 00000000000407e0
[ 0.359492] Stack:
[ 0.359494] ffffffff817da6d5 ffff88003640b0e0 ffff88003640afc0 0000000000000004
[ 0.359496] ffff880037180033 ffffffff8149d82d 00000000c9b42d58 ffffffff817dbca2
[ 0.359498] 0000000000000000 00000000000000f3 0000000000000000 0000000000000000
[ 0.359499] Call Trace:
[ 0.359502] [<ffffffff817da6d5>] ? boot_params_ksysfs_init+0x1ff/0x244
[ 0.359507] [<ffffffff8149d82d>] ? mutex_unlock+0x9/0xb
[ 0.359508] [<ffffffff817dbca2>] ? topology_init+0x36/0x36
[ 0.359512] [<ffffffff810002bf>] do_one_initcall+0xae/0x15b
[ 0.359515] [<ffffffff81078500>] ? parameq+0xb/0x1f
[ 0.359516] [<ffffffff81078770>] ? parse_args+0x25c/0x33a
[ 0.359519] [<ffffffff817d5ec6>] kernel_init_freeable+0x115/0x19b
[ 0.359521] [<ffffffff817d573d>] ? do_early_param+0x88/0x88
[ 0.359523] [<ffffffff81489359>] ? rest_init+0xbd/0xbd
[ 0.359524] [<ffffffff81489362>] kernel_init+0x9/0xfa
[ 0.359527] [<ffffffff8149fd0c>] ret_from_fork+0x7c/0xb0
[ 0.359528] [<ffffffff81489359>] ? rest_init+0xbd/0xbd
[ 0.359548] Code: ff 48 85 c0 48 89 c3 0f 84 b9 00 00 00 49 bf 00 00 00 00 00 88 ff ff 4c 89 28 8b 55 bc 48 8d 7d c0 4d 01 ef 48 c
[ 0.359549] RIP [<ffffffff817dbdbc>] arch_kdebugfs_init+0x11a/0x201
[ 0.359550] RSP <ffff880037189e30>
[ 0.359550] CR2: ffff8800d5592020
[ 0.359559] ---[ end trace d52b3fbe64a26115 ]---
[ 0.621287] kworker/u8:0 (43) used greatest stack depth: 5232 bytes left
[ 0.628021] Kernel panic - not syncing: Attempted to kill init! exitcode=0x00000009
[ 0.628021]

>
> --
> Thanks
> Dave