lkml.org 
[lkml]   [1998]   [Sep]   [20]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: 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/

\
 
 \ /
  Last update: 2005-03-22 13:44    [W:0.054 / U:0.752 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site