Messages in this thread | | | Date | Sun, 20 Sep 1998 17:17:28 +0200 (METDST) | From | Gabriel Paubert <> | Subject | Re: Hard lockup 2.1.122 |
| |
On Sun, 20 Sep 1998, Frank van de Pol wrote:
> > I experience (reproducable) hard lockups on my NFS server running linux > 2.1.122. > > During write to the NFS server from a Window95 machine the linux box crashes > after a few 100 kB have been written. The Linux machine locks hard, no > network traffic possible, console freezes, but interrupt are still working > (the magic sysreq didn't die...). > > Here's the oops (written down by hand, there might be a typo in it...) > > CPU: 0 > EIP: 0010:[<c01a0913>] > EFLAGS: 00010082 > eax: 00000006 ebx: c008c074 ecx: 0000000b edx: 00000000 > esi: c008c074 edi: 0000000b ebp: 00000246 esp: c01d5e6c > ds: 0018 es: 0018 ss: 0018 > Process swapper (pid: 0, process nr: 0, stackpage=c01d5000) > Stack: c019812f 00000000 00000006 c01d5e83 c008c074 00000620 c01982d9 c008c074 > c008c074 04000001 0000000b 0000e903 00000100 c0198869 0000000b c008c074 > c01d5f18 c009d720 04000001 0000000b c01d5f18 c0108a89 0000000b c008c074 > Call Trace: [<c019812f>] [<c01982d9>] [<c0198869>] [<c0108b9f>] [<c0108c46>] [<c0107b20>] > [<c01068d2>] [<c010f007>] [<c0106279>] [<c01062b0>] [<c0107a64>] [<c0106084>] > [<c0106073>] [<c0106000>] [<c0100177>] > Code: 0f b6 42 14 50 8b 02 0f b6 40 1c 50 e8 e4 b6 f6 ff 83 c4 10 > Aiee, killing interrupt handler > Kernel panic: Attempted to kill the idle task! > in swapper task - not syncing > > > ksymoops gives me: > > Using `/boot/System.map.2.1.122' to map addresses to symbols. > > >>EIP: c01a0913 <pci_read_config_byte+f/24> > Trace: c019812f <aic7xxx_pci_intr+1b/150> > Trace: c01982d9 <aic7xxx_isr+75/5a8> > Trace: c0198869 <do_aic7xxx_isr+5d/2e8> > Trace: c0108b9f <do_8259A_IRQ+73/9c> > Trace: c0108c46 <do_IRQ+22/3c> > Trace: c0107b20 <ret_from_intr> > Trace: c01068d2 <__switch_to+6e/d0> > Trace: c010f007 <schedule+22f/264> > Trace: c0106279 <sys_idle+65/ac> > Trace: c01062b0 <sys_idle+9c/ac> > Trace: c0107a64 <system_call+34/40> > Trace: c0106084 <init> > Trace: c0106073 <cpu_idle+7/18> > Trace: c0106000 <get_options> > Trace: c0100177 <L6> > Code: c01a0913 <pci_read_config_byte+f/24> movzbl 0x14(%edx),%eax > Code: c01a0917 <pci_read_config_byte+13/24> pushl %eax > Code: c01a0918 <pci_read_config_byte+14/24> movl (%edx),%eax > Code: c01a091a <pci_read_config_byte+16/24> movzbl 0x1c(%eax),%eax > Code: c01a091e <pci_read_config_byte+1a/24> pushl %eax > Code: c01a091f <pci_read_config_byte+1b/24> call fff6b6f5 <_EIP+fff6b6f5> > Code: c01a0924 <pci_read_config_byte+20/24> addl $0x10,%esp > Code: c01a0927 <pci_read_config_byte+23/24> > > Hmmm, that call fff6b6f5 looks very odd. Perhaps I made a typo there?
No, it is a PC relative address: c01a0924+fff6b6f5 = c010c019 or maybe c010c014 depending on whether _EIP means the address of the next or of thecurrent instruction. This could be considered a ksymoops bug.
Yes you made a typo at least on the call instruction by typing e8 e4 b6, the second byte is most certainly wrong. Anyway the target address of the call is probably pcibios_read_config_byte, but it does not matter. pci_read_config_byte has been called with a null 1st argument which should never happen, so the bug is either somewhere in the aic7xxx interrupt handler or the the variable in which it keeps a pointer to its pci_dev structure has been scribbled.
Gabriel.
- 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/
| |