netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* e1000 lockup in linux 2.6.9-rc2
@ 2004-09-20 20:53 Kai Makisara
  2004-09-20 20:56 ` David S. Miller
  0 siblings, 1 reply; 3+ messages in thread
From: Kai Makisara @ 2004-09-20 20:53 UTC (permalink / raw)
  To: netdev; +Cc: ganesh.venkatesan

When I started large data transfers in 100 Mb/s network, my computer very 
soon locked totally (i.e., not responding to network, keyboard and mouse 
dead). This had not happened for several days with 2.6.9-rc2 when the 
network activity had been light (1 Mb/s DSL).

Some experimentation showed that the lockups were caused by this patch 
fragment in 2.6.9-rc2:

diff -u b/drivers/net/e1000/e1000_main.c b/drivers/net/e1000/e1000_main.c
--- b/drivers/net/e1000/e1000_main.c	2004-08-24 00:04:05 -07:00
+++ b/drivers/net/e1000/e1000_main.c	2004-09-12 22:34:24 -07:00
@@ -499,7 +499,9 @@
 	if(pci_using_dac)
 		netdev->features |= NETIF_F_HIGHDMA;
 
-
+ 	/* hard_start_xmit is safe against parallel locking */
+ 	netdev->features |= NETIF_F_LLTX; 
+ 
 	adapter->en_mng_pt = e1000_enable_mng_pass_thru(&adapter->hw);
 
 	/* before reading the EEPROM, reset the controller to 

The computer has Intel D875PBZLK motherboard with 1 GB memory and 2.6 GHz 
Pentium4 (HT). An SMP kernel has been used. lspci -vv gives the following 
information about the NIC:

0000:02:01.0 Ethernet controller: Intel Corp. 82547EI Gigabit Ethernet Controller (LOM)
        Subsystem: Intel Corp.: Unknown device 3025
        Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B-
        Status: Cap+ 66Mhz+ UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR-
        Latency: 0 (63750ns min), cache line size 10
        Interrupt: pin A routed to IRQ 185
        Region 0: Memory at ff8e0000 (32-bit, non-prefetchable)
        Region 2: I/O ports at 9c00 [size=32]
        Capabilities: [dc] Power Management version 2
                Flags: PMEClk- DSI+ D1- D2- AuxCurrent=0mA PME(D0+,D1-,D2-,D3hot+,D3cold+)
                Status: D0 PME-Enable- DSel=0 DScale=1 PME-

(This kernel has MSI enabled and thus IRQ is 185. The hangup did occur 
also without MSI.)

-- 
Kai

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: e1000 lockup in linux 2.6.9-rc2
  2004-09-20 20:53 e1000 lockup in linux 2.6.9-rc2 Kai Makisara
@ 2004-09-20 20:56 ` David S. Miller
  2004-09-20 21:25   ` Kai Makisara
  0 siblings, 1 reply; 3+ messages in thread
From: David S. Miller @ 2004-09-20 20:56 UTC (permalink / raw)
  To: Kai Makisara; +Cc: netdev, ganesh.venkatesan

On Mon, 20 Sep 2004 23:53:15 +0300 (EEST)
Kai Makisara <Kai.Makisara@kolumbus.fi> wrote:

> When I started large data transfers in 100 Mb/s network, my computer very 
> soon locked totally (i.e., not responding to network, keyboard and mouse 
> dead). This had not happened for several days with 2.6.9-rc2 when the 
> network activity had been light (1 Mb/s DSL).
> 
> Some experimentation showed that the lockups were caused by this patch 
> fragment in 2.6.9-rc2:

Please make sure you have this patch in your
tree, it should fix your problem:

# This is a BitKeeper generated diff -Nru style patch.
#
# ChangeSet
#   2004/09/13 12:58:04-07:00 ak@muc.de 
#   [NET]: Fix missing spin lock in lltx path.
#   
#   This fixes a silly missing spin lock in the relock path. For some 
#   reason it seems to still work when you don't have spinlock debugging
#   enabled.
#   
#   Please apply.
#   
#   Thanks to Arjan's spinlock debug kernel for finding it.
#   
#   Signed-off-by: Andi Kleen <ak@muc.de>
#   Signed-off-by: David S. Miller <davem@davemloft.net>
# 
# net/sched/sch_generic.c
#   2004/09/13 12:57:46-07:00 ak@muc.de +3 -1
#   [NET]: Fix missing spin lock in lltx path.
#   
#   This fixes a silly missing spin lock in the relock path. For some 
#   reason it seems to still work when you don't have spinlock debugging
#   enabled.
#   
#   Please apply.
#   
#   Thanks to Arjan's spinlock debug kernel for finding it.
#   
#   Signed-off-by: Andi Kleen <ak@muc.de>
#   Signed-off-by: David S. Miller <davem@davemloft.net>
# 
diff -Nru a/net/sched/sch_generic.c b/net/sched/sch_generic.c
--- a/net/sched/sch_generic.c	2004-09-20 13:36:19 -07:00
+++ b/net/sched/sch_generic.c	2004-09-20 13:36:19 -07:00
@@ -148,8 +148,10 @@
 					spin_lock(&dev->queue_lock);
 					return -1;
 				}
-				if (ret == NETDEV_TX_LOCKED && nolock)
+				if (ret == NETDEV_TX_LOCKED && nolock) {
+					spin_lock(&dev->queue_lock);
 					goto collision; 
+				}
 			}
 
 			/* NETDEV_TX_BUSY - we need to requeue */

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: e1000 lockup in linux 2.6.9-rc2
  2004-09-20 20:56 ` David S. Miller
@ 2004-09-20 21:25   ` Kai Makisara
  0 siblings, 0 replies; 3+ messages in thread
From: Kai Makisara @ 2004-09-20 21:25 UTC (permalink / raw)
  To: David S. Miller; +Cc: netdev, ganesh.venkatesan

On Mon, 20 Sep 2004, David S. Miller wrote:

> On Mon, 20 Sep 2004 23:53:15 +0300 (EEST)
> Kai Makisara <Kai.Makisara@kolumbus.fi> wrote:
> 
> > When I started large data transfers in 100 Mb/s network, my computer very 
> > soon locked totally (i.e., not responding to network, keyboard and mouse 
> > dead). This had not happened for several days with 2.6.9-rc2 when the 
> > network activity had been light (1 Mb/s DSL).
> > 
> > Some experimentation showed that the lockups were caused by this patch 
> > fragment in 2.6.9-rc2:
> 
> Please make sure you have this patch in your
> tree, it should fix your problem:
> 
I did not have this patch. Installed it and I can confirm that it fixes 
the problem.

Thanks,
-- 
Kai

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2004-09-20 21:25 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2004-09-20 20:53 e1000 lockup in linux 2.6.9-rc2 Kai Makisara
2004-09-20 20:56 ` David S. Miller
2004-09-20 21:25   ` Kai Makisara

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).