Messages in this thread | | | Date | Sun, 04 Oct 1998 16:29:18 +1300 | From | Slava <> | Subject | devfs oops |
| |
Another oops to keep you guys busy :)
Kernel 2.1.123+devfs v62. Any attempt to access /proc/partitions gives me:
Unable to handle kernel paging request at virtual address 74316230 current->tss.cr3 = 00f80000, ^Lr3 = 00f80000 *pde = 00000000 Oops: 0000 CPU: 0 EIP: 0010:[<74316230>] EFLAGS: 00010292 eax: 00000108 ebx: 00000000 ecx: 00000006 edx: c01d4a5f esi: c0f83f90 edi: c1f4896c ebp: 00000400 esp: c0f83f4c ds: 0018 es: 0018 ss: 0018 Process cat (pid: 344, process nr: 31, stackpage=c0f83000) Stack: c1124b54 c01471be c0f42000 00000013 c0f83f90 00000000 00000400 c1124b40 ffffffea 0804dc88 00000400 00000000 bffffa98 0804c93f c010cd3b c0f82000 c0f42000 00000000 c0120856 c1124b40 0804dc88 00000400 c1124b54 c0f82000 Call Trace: [<c01471be>] [<c010cd3b>] [<c0120856>] [<c0107a64>] Code: <1>Unable to handle kernel paging request at virtual address 74316230 current->tss.cr3 = 00f80000, ^Lr3 = 00f80000 *pde = 00000000 Oops: 0000 CPU: 0 EIP: 0010:[<c0107ef7>] EFLAGS: 00010096 eax: 74316230 ebx: 00000000 ecx: c1e08000 edx: c01e61d0 esi: 0000002b edi: c0f84000 ebp: c0f83f10 esp: c0f83ea8 ds: 0018 es: 0018 ss: 0018 Process cat (pid: 344, process nr: 31, stackpage=c0f83000) Stack: c0f83f10 c0f82000 c2800000 c3000000 c2800000 c0107f54 c0f83f10 c01c97cc c01ca4f5 00000000 00000000 c010cf06 c01ca4f5 c0f83f10 00000000 c0f82000 c0f83f90 c1f4896c 00000400 c1213ce0 4bce7000 c01fee60 c0f82000 c0107b9d Call Trace: [<c2800000>] [<c3000000>] [<c2800000>] [<c0107f54>] [<c01c97cc>] [< [<c01ca4f5>] [<c0107b9d>] [<c01d4a5f>] [<c01471be>] [<c010cd3b>] [<c0120
Code: 0f b6 04 03 50 68 c4 97 1c c0 e8 42 94 00 00 83 c4 08 43 83
It looks like the kernel oopsed while printing the code - the EIP was probably invalid. Anyway, the first oopses call trace is as follows:
EIP: Invalid (?) Call Trace: [<c01471be>] array_read [<c010cd3b>] do_page_fault [<c0120856>] sys_read [<c0107a64>] system_call
The offending instructions are (according to gdb disassembly): 0xc014719f <array_read+159>: movl 0x2c(%esp,1),%esi 0xc01471a3 <array_read+163>: pushl %esi 0xc01471a4 <array_read+164>: call 0xc0147078 <get_process_array> 0xc01471a9 <array_read+169>: movl %eax,%edi 0xc01471ab <array_read+171>: addl $0xc,%esp 0xc01471ae <array_read+174>: jmp 0xc01471c3 <array_read+195> 0xc01471b0 <array_read+176>: pushl %ebp 0xc01471b1 <array_read+177>: pushl %ecx 0xc01471b2 <array_read+178>: pushl %eax 0xc01471b3 <array_read+179>: pushl %edx 0xc01471b4 <array_read+180>: movl 0x34(%esp,1),%ebx 0xc01471b8 <array_read+184>: pushl %ebx 0xc01471b9 <array_read+185>: call 0xc0146ee4 <get_root_array> 0xc01471be <array_read+190>: movl %eax,%edi <------------ BOOOOM the oops occured here 0xc01471c0 <array_read+192>: addl $0x14,%esp 0xc01471c3 <array_read+195>: testl %edi,%edi 0xc01471c5 <array_read+197>: jnl 0xc01471dc <array_read+220> 0xc01471c7 <array_read+199>: xorl %edx,%edx 0xc01471c9 <array_read+201>: movl 0x24(%esp,1),%eax 0xc01471cd <array_read+205>: call 0xc011d8d0 <free_pages> 0xc01471d2 <array_read+210>: movl %edi,%eax 0xc01471d4 <array_read+212>: popl %ebx 0xc01471d5 <array_read+213>: popl %esi 0xc01471d6 <array_read+214>: popl %edi 0xc01471d7 <array_read+215>: popl %ebp 0xc01471d8 <array_read+216>: addl $0x1c,%esp
Maybe array_read uses a structure member as a function, and that member happened to be corrupt? BTW, this doesn't occur without devfs. Devfs has rather long device names - maybe an overflow?
Slava
PS: The other day, I exited from X (with window maker's exit session command) and my computer instantly rebooted. Nothing in the logs. I remember someone else on the list had the same problem. X bug, kernel bug, or am I doing something wrong?
PPS: What is the edi register for? -- Slava Pestov (mailto:slava_pestov@geocities.com) http://www.geocities.com/SiliconValley/Heights/7925 Linux 2.0.35 on an i586MMX (400.59 BogoMips)
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.rutgers.edu Please read the FAQ at http://www.tux.org/lkml/
| |