Messages in this thread |  | | Date | Tue, 12 Nov 1996 18:48:52 +0200 (EET) | From | Linus Torvalds <> | Subject | Re: Oopses with 2.1.8 |
| |
On Tue, 12 Nov 1996, Philippe Strauss wrote: > > I've posted some days ago oops report on my box with 2.1.8. > Nobody answered so i must be the only one seeing this.
At least the panic you post is "impossible", so somehting very subtle indeed must be going on.
> Nov 12 15:16:52 sicel-home-1-4 kernel: Unable to handle kernel NULL pointer dereference at virtual address 00000064 > Nov 12 15:16:52 sicel-home-1-4 kernel: current->tss.cr3 = 00101000, Dr3 = 00101000 > Nov 12 15:16:52 sicel-home-1-4 kernel: *pde = 00000000 > Nov 12 15:16:52 sicel-home-1-4 kernel: Oops: 0000 > Nov 12 15:16:52 sicel-home-1-4 kernel: CPU: 0 > Nov 12 15:16:52 sicel-home-1-4 kernel: EIP: 0010:[<c012fb25>] > Nov 12 15:16:52 sicel-home-1-4 kernel: EFLAGS: 00010046 > Nov 12 15:16:52 sicel-home-1-4 kernel: eax: 0000000c ebx: c0275c10 ecx: 00000001 edx: c0275c10 > Nov 12 15:16:52 sicel-home-1-4 kernel: esi: c1c3d0cc edi: 00000054 ebp: c0084808 esp: c01e34e0 > Nov 12 15:16:52 sicel-home-1-4 kernel: ds: 0018 es: 0018 ss: 0018 > Nov 12 15:16:52 sicel-home-1-4 kernel: Process swapper (pid: 0, process nr: 0, stackpage=c01e16bc) > Nov 12 15:16:52 sicel-home-1-4 kernel: Stack: c0275c10 c1c3d0cc 00000002 c0084808 c0084808 c01259a5 c0275c10 c1c3d0cc > Nov 12 15:16:52 sicel-home-1-4 kernel: c0084860 0000000a c01a6313 c1c3d0cc c1c3d0cc 00000001 00000054 00000010 > Nov 12 15:16:52 sicel-home-1-4 kernel: c0084808 00000000 c01a67e9 c0084808 00000001 00000010 00000000 c0084808 > Nov 12 15:16:52 sicel-home-1-4 kernel: Call Trace: [<c01259a5>] [<c01a6313>] [<c01a67e9>] [<c01a2ac4>] [<c01ae685>] > [<c01ae6aa>] [<c01ae70f>] > Nov 12 15:16:52 sicel-home-1-4 kernel: [<c01af1e1>] [<c0111680>] [<c01ad621>] [<c01b1753>] [<c010c8ca>] [<c010c391>] [<c0109654>] [<c010a7e8>] > Nov 12 15:16:52 sicel-home-1-4 kernel: [<c0109348>] [<c01091c3>] [<c01c5e5d>] [<c0116c08>] > Nov 12 15:16:52 sicel-home-1-4 kernel: Code: 66 83 7f 10 02 74 07 83 7c 24 24 00 74 0f c7 44 24 10 12 08 > Nov 12 15:16:52 sicel-home-1-4 kernel: Aiee, killing interrupt handler
Can you tell me what the call trace is? You should never get a "killing interrupt handler" message from the exec() code, because no interrupt handler should ever try to execve anything.
> Nov 12 15:16:52 sicel-home-1-4 kernel: kfree of non-kmalloced memory: c01e3704, next= 00000000, order=0 > Nov 12 15:16:52 sicel-home-1-4 kernel: kfree of non-kmalloced memory: c01e36f4, next= 00000000, order=0 > Nov 12 15:16:52 sicel-home-1-4 kernel: kfree of non-kmalloced memory: c01e3c08, next= 00000000, order=0 > Nov 12 15:16:52 sicel-home-1-4 kernel: idle task may not sleep > Nov 12 15:16:52 sicel-home-1-4 last message repeated 4 times > Nov 12 15:16:55 sicel-home-1-4 kernel: Socket destroy delayed (r=0 w=248) > Nov 12 15:17:05 sicel-home-1-4 last message repeated 3 times > Nov 12 15:17:49 sicel-home-1-4 syslogd: exiting on signal 15 > > went through colrm and ksymoops: > > Using `/boot/SysMap/System.map.218.96.11.12.14.44' to map addresses to symbols. > > >>EIP: c012fb25 <load_elf_interp+189/2e0> > > Code: c012fb25 <load_elf_interp+189/2e0> cmpw $0x2,0x10(%edi)
This is the test
if (interp_elf_ex->e_type == ET_EXEC || load_addr_set) {
in particular, "interp_elf_ex" is in %edi, and has a value of 0x00000054, which is indeed a very bad kernel pointer.
However, the "funny" thing is that the same pointer should have been used at the top of the for() loop that the test is inside, so the exception should have happened much earlier. That's why I'd like to see the symbolic version of the call trace, because I suspect the panic comes from something jumping through a corrupt pointer, and I'd like to know who the jumper is..
> What are thos nop'ses replacing the movl?? Self modifying code? Shitty DRAM? > Something in kernel space writing stuff around?
No, it's just that the kernel panic doesn't give more than 20 bytes of instructions, and the disassembler will give bogus disassembly for the last bytes due to incomplete partial instructions.
Oh, and you might just try out 2.1.9, which has some fixes to the networking code, maybe it makes a difference..
Linus
|  |