login
Header Space

 
 

getting "bad pmd" from mm/memory.c

June 25, 2008 - 9:44am
Submitted by Gagan Grover on June 25, 2008 - 9:44am.
Linux

I am running some code related to memory registration on linux kernel: 2.6.9-42.ELsmp
I am allocating and registering memory in loop and have checked for every error condition during the allocation and registration of memory.
Still, I am getting this error and then kernel panic.
Pleas, give some clue, why it is coming and how to solve it...

ERROR is blow:

mm/memory.c:110: bad pmd 000001012b261ac0(ffffffff80467658).
mm/memory.c:110: bad pmd 000001012b261ad0(0000000000000100).
mm/memory.c:110: bad pmd 000001012b261ad8(0000010135bac4c0).
mm/memory.c:110: bad pmd 000001012b261ae0(0000000000000001).
mm/memory.c:110: bad pmd 000001012b261ae8(000001012b5927f0).
mm/memory.c:110: bad pmd 000001012b261af0(0000010135bac4c0).
mm/memory.c:110: bad pmd 000001012b261af8(000001012b5927f0).
mm/memory.c:110: bad pmd 000001012b261b00(000001000104c7e0).
mm/memory.c:110: bad pmd 000001012b261b08(000001000105c7e0).
mm/memory.c:110: bad pmd 000001012b261b10(ffffffff8030a0f5).
mm/memory.c:110: bad pmd 000001012b261b18(0000010135bac4c0).
mm/memory.c:110: bad pmd 000001012b261b20(ffffffff8030a1b6).
mm/memory.c:110: bad pmd 000001012b261b28(0000010005d1e030).
mm/memory.c:110: bad pmd 000001012b261b50(0000000100000000).
mm/memory.c:110: bad pmd 000001012b261b58(000001012b5927f0).
mm/memory.c:110: bad pmd 000001012b261b60(000000000032a136).
mm/memory.c:110: bad pmd 000001012b261b68(0000072e2b6d8dd2).
mm/memory.c:110: bad pmd 000001012b261b70(0000010005d1e030).
mm/memory.c:110: bad pmd 000001012b261b78(000001012b261be8).
mm/memory.c:110: bad pmd 000001012b261b80(ffffffff80132155).
mm/memory.c:110: bad pmd 000001012b261b88(0000000000000008).
mm/memory.c:110: bad pmd 000001012b261b98(0000000100750fb1).
mm/memory.c:110: bad pmd 000001012b261ba0(0000000000000009).
mm/memory.c:110: bad pmd 000001012b261ba8(00000000000025b2).
mm/memory.c:110: bad pmd 000001012b261bb0(0000000000000202).
mm/memory.c:110: bad pmd 000001012b261bb8(0000000000000202).
mm/memory.c:110: bad pmd 000001012b261bc8(0000072e2be54fad).
mm/memory.c:110: bad pmd 000001012b261bd0(0000010005dc4030).
mm/memory.c:110: bad pmd 000001012b261bd8(00000100010447e0).
mm/memory.c:110: bad pmd 000001012b261be8(000001012b261c18).
mm/memory.c:110: bad pmd 000001012b261bf0(ffffffff801321e3).
mm/memory.c:110: bad pmd 000001012b261bf8(00000100010447e0).
mm/memory.c:110: bad pmd 000001012b261c00(0000000000000001).
mm/memory.c:110: bad pmd 000001012b261c08(0000010005dc4030).
mm/memory.c:110: bad pmd 000001012b261c18(0000000000000016).
mm/memory.c:110: bad pmd 000001012b261c20(ffffffff8013271e).
mm/memory.c:110: bad pmd 000001012b261c28(0000000000000001).
mm/memory.c:110: bad pmd 000001012b261c30(00000100010447e0).
mm/memory.c:110: bad pmd 000001012b261c38(00000100010447e0).
mm/memory.c:110: bad pmd 000001012b261c40(0000000000000001).
mm/memory.c:110: bad pmd 000001012b261c48(0000000100000246).
mm/memory.c:110: bad pmd 000001012b261c50(0000000000000001).
mm/memory.c:110: bad pmd 000001012b261c58(0000000000000016).
mm/memory.c:110: bad pmd 000001012b261c60(0000010136cd1e88).
mm/memory.c:110: bad pmd 000001012b261c68(ffffffff803e1ee0).
mm/memory.c:110: bad pmd 000001012b261c78(ffffffff803e1ee8).
mm/memory.c:110: bad pmd 000001012b261c88(000001012b261cd8).
mm/memory.c:110: bad pmd 000001012b261c90(ffffffff8013575b).
mm/memory.c:110: bad pmd 000001012b261c98(0000000000000001).
mm/memory.c:110: bad pmd 000001012b261ca0(ffffffff80133dfa).
mm/memory.c:110: bad pmd 000001012b261ca8(0000000100000000).
mm/memory.c:110: bad pmd 000001012b261cb0(ffffffff803e1ee0).
mm/memory.c:110: bad pmd 000001012b261cc0(0000000000000001).
mm/memory.c:110: bad pmd 000001012b261cc8(0000000000000246).
mm/memory.c:110: bad pmd 000001012b261cd0(0000000000000001).
mm/memory.c:110: bad pmd 000001012b261cd8(000001012b261d18).
mm/memory.c:110: bad pmd 000001012b261ce0(ffffffff80133e50).
mm/memory.c:110: bad pmd 000001012b261ce8(ffffffffa026b517).
mm/memory.c:110: bad pmd 000001012b261cf0(ffffffff80467e1f).
mm/memory.c:110: bad pmd 000001012b261cf8(ffffffffa026b517).
mm/memory.c:110: bad pmd 000001012b261d00(000000000000001f).
mm/memory.c:110: bad pmd 000001012b261d08(000001012b3eb000).
mm/memory.c:110: bad pmd 000001012b261d18(0000000000000246).
mm/memory.c:110: bad pmd 000001012b261d20(ffffffff801384a4).
mm/memory.c:110: bad pmd 000001012b261d28(0000000000000001).
mm/memory.c:110: bad pmd 000001012b261d30(0000000000000001).
mm/memory.c:110: bad pmd 000001012b261d38(000001012b261e50).
mm/memory.c:110: bad pmd 000001012b261d40(0000000000000016).
mm/memory.c:110: bad pmd 000001012b261d48(000001012a000000).
mm/memory.c:110: bad pmd 000001012b261d50(ffffffff8013854e).
mm/memory.c:110: bad pmd 000001012b261d58(0000003000000008).
mm/memory.c:110: bad pmd 000001012b261d60(000001012b261e38).
mm/memory.c:110: bad pmd 000001012b261d68(000001012b261d78).
mm/memory.c:110: bad pmd 000001012b261d70(0000000000000206).
mm/memory.c:110: bad pmd 000001012b261d78(000000d000000246).
mm/memory.c:110: bad pmd 000001012b261d80(0000000000000246).
mm/memory.c:110: bad pmd 000001012b261d88(ffffffff803e1ee8).
mm/memory.c:110: bad pmd 000001012b261d90(ffffffff803e1ee8).
mm/memory.c:110: bad pmd 000001012b261d98(ffffffff803e1ee8).
mm/memory.c:110: bad pmd 000001012b261da0(0000000000000001).
mm/memory.c:110: bad pmd 000001012b261da8(000001000000f680).
mm/memory.c:110: bad pmd 000001012b261db8(000001012b5927f0).
mm/memory.c:110: bad pmd 000001012b261dc0(0000000000000206).
mm/memory.c:110: bad pmd 000001012b261dd0(ffffffffa00ca7f7).
mm/memory.c:110: bad pmd 000001012b261dd8(0000001000000001).
mm/memory.c:110: bad pmd 000001012b261de0(0000000000000206).
mm/memory.c:110: bad pmd 000001012b261de8(00305b2b01010000).
mm/memory.c:110: bad pmd 000001012b261df0(0010000000000000).
mm/memory.c:110: bad pmd 000001012b261df8(000000004c008200).
mm/memory.c:110: bad pmd 000001012b261e00(0000000000000016).
mm/memory.c:110: bad pmd 000001012b261e08(000001012a000000).
mm/memory.c:110: bad pmd 000001012b261e10(000001012b3eb000).
mm/memory.c:110: bad pmd 000001012b261e20(0000000000000001).
mm/memory.c:110: bad pmd 000001012b261e28(000001012b261e50).
mm/memory.c:110: bad pmd 000001012b261e30(ffffffffa0267889).
mm/memory.c:110: bad pmd 000001012b261e38(000000c800000001).
mm/memory.c:110: bad pmd 000001012b261e40(0000001600000001).
mm/memory.c:110: bad pmd 000001012b261e48(000000012b5b3000).
<1>Unable to handle kernel NULL pointer dereference at 0000000000000000 RIP:
[<0000000000000000>]
PML4 12b031067 PGD 12ed36067 PMD 0
Oops: 0010 [1] SMP
CPU 3
Modules linked in: dbg(U) ib_ipoib(U) parport_pc lp parport md5 ipv6 autofs4 i2c_dev i2c_core nfs lockd nfs_acl sunrpc rdma_ucm(U) rdma_cm(U) ib_addr(U) dsd
Pid: 6843, comm: dbg_fmr_create Tainted: PF 2.6.9-42.ELsmp
RIP: 0010:[<0000000000000000>] [<0000000000000000>]
RSP: 0018:000001012af35ca8 EFLAGS: 00010202
RAX: 0000000000000000 RBX: 0000000000000000 RCX: 0000000000000000
RDX: 00000000000003fd RSI: 0000000000000005 RDI: ffffffff804c2f00
RBP: ffffffff804c2f00 R08: 0000000000000065 R09: 000001012b3ed000
R10: 0000000000000000 R11: 0000000000000000 R12: 0000000000002704
R13: ffffffff804725ed R14: 0000000000000006 R15: 000000000000001c
FS: 0000002a9557db00(0000) GS:ffffffff804e5200(0000) knlGS:0000000000000000
CS: 0010 DS: 0000 ES: 0000 CR0: 000000008005003b
CR2: 0000000000000000 CR3: 0000000005da4000 CR4: 00000000000006e0
Process dbg_fmr_create (pid: 6843, threadinfo 000001012af36000, task 000001012b5927f0)
Stack: 0000000000000000 0000000000000000 0000000000000000 0000000000000000
0000000000000000 0000000000000000 0000000000000000 0000000000000000
0000000000000000 0000000000000000
Call Trace:

Code: Bad RIP value.
RIP [<0000000000000000>] RSP <000001012af35ca8>
CR2: 0000000000000000
<0>Kernel panic - not syncing: Oops

reproduce

June 25, 2008 - 6:41pm

can you reproduce the error with a recent kernel? have you tried to print a call stack at the place where the warning is printed?

how do you allocate the memory? what do you mean by 'registering memory'?

lots of adjacent pmd entries gut corrupted, but i can't see a regular pattern in their contents. maybe you just wrote to an invalid pointer that got reused as a pmd, or you have an array overflow adjacent to a pmd.

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.
speck-geostationary