netdev
[Top] [All Lists]

Re: r8169 - panic and a fix

To: Francois Romieu <romieu@xxxxxxxxxxxxx>
Subject: Re: r8169 - panic and a fix
From: Srihari Vijayaraghavan <sriharivijayaraghavan@xxxxxxxxxxxx>
Date: Sun, 12 Sep 2004 18:32:57 +1000
Cc: netdev@xxxxxxxxxxx
In-reply-to: <20040911121952.GA3134@electric-eye.fr.zoreil.com>
References: <200409082224.23829.sriharivijayaraghavan@yahoo.com.au> <200409111147.24064.sriharivijayaraghavan@yahoo.com.au> <20040911121952.GA3134@electric-eye.fr.zoreil.com>
Sender: netdev-bounce@xxxxxxxxxxx
User-agent: KMail/1.6.2
On Sat, 11 Sep 2004 10:19 pm, Francois Romieu wrote:
> ...
> R12 is confusing me.
>
> Can you do two more subsequent tests with the patch attached ?
> They apply against vanilla 2.6.9-rc1-bk{11/17}.

Sure. This is from r8169-dbg-a.patch:

----------- [cut here ] --------- [please bite here ] ---------
Kernel BUG at r8169:1701
invalid operand: 0000 [1]
CPU 0
Modules linked in: snd_pcm_oss snd_mixer_oss snd_via82xx snd_ac97_codec 
snd_pcm snd_timer snd_page_alloc snd_mpu401_uart sx
Pid: 0, comm: swapper Not tainted 2.6.9-rc1-bk17-r8169-a
RIP: 0010:[<ffffffffa00e9f24>] 
<ffffffffa00e9f24>{:r8169:rtl8169_rx_interrupt+436}
RSP: 0018:ffffffff8039bc38  EFLAGS: 00010206
RAX: 0000000000000000 RBX: 0000000000000c00 RCX: 0000000000000000
RDX: 0000000000000600 RSI: 000000003ea17012 RDI: 00000100023c3070
RBP: 0000010036e71360 R08: 0000000000000000 R09: 0000000000000000
R10: 000001003f613b28 R11: 0000000000000001 R12: 0000000000000bfc
R13: 0000000000000000 R14: 0000000000000000 R15: 00000100370e7000
FS:  0000002a95577da0(0000) GS:ffffffff803f3040(0000) knlGS:0000000000000000
CS:  0010 DS: 0018 ES: 0018 CR0: 000000008005003b
CR2: 0000002a95557000 CR3: 0000000000101000 CR4: 00000000000006e0
Process swapper (pid: 0, threadinfo ffffffff803f6000, task ffffffff802ef480)
Stack: 0000000000000bfc ffffffffa00ea3e0 0000010000000286 0000010036e71000
       000001003fc36880 0000000000008001 ffffff0000056000 0000000000000014
       0000010036e71360 0000010036e71000
Call Trace:<IRQ> <ffffffffa00ea3e0>{:r8169:pci_unmap_single+0} 
<ffffffffa00ea0f3>{:r8169:rtl8169_interrupt+147}
       <ffffffff8011252c>{handle_IRQ_event+44} <ffffffff801126c3>{do_IRQ+147}
       <ffffffff8010de20>{default_idle+0} <ffffffff80110051>{ret_from_intr+0}
        <EOI> <ffffffff8010de44>{default_idle+36} 
<ffffffff8010deca>{cpu_idle+26}
       <ffffffff803f9723>{start_kernel+339}

Code: 0f 0b a9 a5 0e a0 ff ff ff ff a5 06 48 8b 7c 24 20 8b 87 9c
RIP <ffffffffa00e9f24>{:r8169:rtl8169_rx_interrupt+436} RSP <ffffffff8039bc38>
 <0>Kernel panic - not syncing: Aiee, killing interrupt handler!

Whereas this one is from r8169-dbg-b.patch:

----------- [cut here ] --------- [please bite here ] ---------
Kernel BUG at r8169:1702
invalid operand: 0000 [1]
CPU 0
Modules linked in: r8169 af_packet ide_cd cdrom via_rhine mii crc32 floppy 
radeon reiserfs dm_mod uhci_hcd ehci_hcd usbcorx
Pid: 0, comm: swapper Not tainted 2.6.9-rc1-bk17-r8169-b
RIP: 0010:[<ffffffffa00e9f24>] 
<ffffffffa00e9f24>{:r8169:rtl8169_rx_interrupt+436}
RSP: 0018:ffffffff8039bc38  EFLAGS: 00010206
RAX: 0000000000000000 RBX: 0000000000000c00 RCX: 0000000000000000
RDX: 0000000000000600 RSI: 000000003ef4d012 RDI: 00000100023c3070
RBP: 0000010038ee4360 R08: 0000000000000000 R09: 0000000000000000
R10: 000001003f614e28 R11: 000001003bacdda0 R12: 0000000000000bfc
R13: 0000000000000000 R14: 0000000000000000 R15: 0000010036f70000
FS:  0000002a9556dd40(0000) GS:ffffffff803f3040(0000) knlGS:0000000000000000
CS:  0010 DS: 0018 ES: 0018 CR0: 000000008005003b
CR2: 00000039cbb8bd60 CR3: 0000000000101000 CR4: 00000000000006e0
Process swapper (pid: 0, threadinfo ffffffff803f6000, task ffffffff802ef480)
Stack: 0000000000000bfc ffffffffa00ea3e0 0000010000000286 0000010038ee4000
       000001003fc36b80 0000000000008001 ffffff0000056000 0000000000000014
       0000010038ee4360 0000010038ee4000
Call Trace:<IRQ> <ffffffffa00ea3e0>{:r8169:pci_unmap_single+0} 
<ffffffffa00ea0f3>{:r8169:rtl8169_interrupt+147}
       <ffffffff8011252c>{handle_IRQ_event+44} <ffffffff801126c3>{do_IRQ+147}
       <ffffffff8010de20>{default_idle+0} <ffffffff80110051>{ret_from_intr+0}
        <EOI> <ffffffff8010de44>{default_idle+36} 
<ffffffff8010deca>{cpu_idle+26}
       <ffffffff803f9723>{start_kernel+339}

Code: 0f 0b a9 a5 0e a0 ff ff ff ff a6 06 48 8b 7c 24 20 8b 87 9c
RIP <ffffffffa00e9f24>{:r8169:rtl8169_rx_interrupt+436} RSP <ffffffff8039bc38>
 <0>Kernel panic - not syncing: Aiee, killing interrupt handler!

> I assume the oops happen immediately and you can not even tell if a few
> packets were transmitted/received, right ?

Not really. If I disconnect the network cable, then it does not crash on 
2.6.9-rc1-bk17, and on r8169-dbg-a.patch and .r8169-dbg-b.patch too.

So from this machine if I ping a remote machine, ping never succeeds, but it 
does not crash either. OTOH, when I ping from a remote machine, it crashes 
instantaneously. (So it seems it is somehow related to RX related 
functionality).

> I'll welcome the objdump -S of both r8169.o modules as well as the section
> of the vmlinux file where skb_over_panic() appears.

With objdumb of r8169 I have no problems (please refer to the attachments), 
but I do not know how to extract the skb_over_panic() section from vmlinux. 
Could you please explain it to me as to how to do that?, perhaps in a private 
email.

Thank you.
Hari.

Attachment: objdump-2.6.9-rc1-bk17-r8169.bz2
Description: BZip2 compressed data

Attachment: objdump-2.6.9-rc1-bk17-r8169-dbg-b.patch.bz2
Description: BZip2 compressed data

Attachment: objdump-2.6.9-rc1-bk17-r8169-dbg-a.patch.bz2
Description: BZip2 compressed data

<Prev in Thread] Current Thread [Next in Thread>