kdump fails to load and crashes [was: mmotm 2009-11-01-10-01 uploaded]

Jiri Slaby jirislaby at gmail.com
Mon Nov 2 18:11:58 EST 2009


On 11/01/2009 07:07 PM, akpm at linux-foundation.org wrote:
> The mm-of-the-moment snapshot 2009-11-01-10-01 has been uploaded to

Hi, kdump loading crashes:
BUG: unable to handle kernel paging request at ffff8800010a7000
IP: [<ffffffff8101cd8b>] machine_kexec_prepare+0x16b/0x13e0
PGD 1806063 PUD 180a063 PMD 10001e1
Oops: 0003 [#1] SMP
last sysfs file: /sys/firmware/memmap/10/type
CPU 1
Modules linked in: fuse ath5k ath
Pid: 3250, comm: kexec Tainted: G        W  2.6.32-rc5-mm1_64 #869 To Be
Filled By O.E.M.
RIP: 0010:[<ffffffff8101cd8b>]  [<ffffffff8101cd8b>]
machine_kexec_prepare+0x16b/0x13e0
RSP: 0018:ffff8801c95d1e88  EFLAGS: 00010206
RAX: 00000000000001e3 RBX: ffff8801ca2aac00 RCX: 0000000040000000
RDX: 0000000000200000 RSI: ffff8800010a7000 RDI: ffff8800010a7000
RBP: ffff8801c95d1ee8 R08: 00000000000010a7 R09: 00000000010a7fff
R10: 0000000000000fff R11: 0000000004ffffff R12: 0000000000000000
R13: ffff8800010a6000 R14: 0000008000000000 R15: ffff880000000000
FS:  00007f4f97b4c6f0(0000) GS:ffff880028280000(0000) knlGS:0000000000000000
CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: ffff8800010a7000 CR3: 00000001c8cf2000 CR4: 00000000000006e0
DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
Process kexec (pid: 3250, threadinfo ffff8801c95d0000, task
ffff8801ca116700)
Stack:
ffff8801c95d1ee8 ffff8800010a6000 ffff8800010a4000 ffff8800010a4000
<0> 0000000000000000 00000001cc000000 ffff8801c95d1ee8 0000000000000006
<0> ffff8801ca2aac00 0000000000000000 0000000000000000 000000000146eae0
Call Trace:
[<ffffffff8106d32c>] sys_kexec_load+0xec/0x5e0
[<ffffffff814365b5>] ? do_page_fault+0x185/0x350
[<ffffffff81002e6b>] system_call_fastpath+0x16/0x1b
Code: 00 40 48 c1 e6 0c 4c 01 fe 48 39 ca 73 21 48 89 f7 0f 1f 80 00 00
00 00 48 89 d0 48 81 c2 00 00 20 00 48 0d e3 01 00 00 48 39 d1 <48> ab
77 e9 48 89 f7 49 81 c4 00 00 00 40 e8 e2 93 00 00 4c 89
RIP  [<ffffffff8101cd8b>] machine_kexec_prepare+0x16b/0x13e0
RSP <ffff8801c95d1e88>
CR2: ffff8800010a7000
---[ end trace 4eaa2a86a8e2da24 ]---

ffff8800010a7000 should be OK, as crashkernel=64M at 16M was passed to the
kernel.

It's here:
static void init_level2_page(pmd_t *level2p, unsigned long addr)
{
        unsigned long end_addr;

        addr &= PAGE_MASK;
        end_addr = addr + PUD_SIZE;
        while (addr < end_addr) {
here ->         set_pmd(level2p++, __pmd(addr | __PAGE_KERNEL_LARGE_EXEC));
                addr += PMD_SIZE;
        }
}

Corresponding -fverbose-asm with -g:
        .loc 1 65 0
        addq    $2097152, %rdx  #, addr
.LVL31:
.LBB416:
        .loc 5 77 0
        orq     $483, %rax      #, tmp140
.LBE416:
        .loc 1 63 0
        cmpq    %rdx, %rcx      # addr, end_addr
.LBB417:
        .loc 5 77 0
        stosq
.LVL32:
.LBE417:
        .loc 1 63 0
        ja      .L26    #,






More information about the kexec mailing list