Re: [GIT]: Networking

!MAILaRCHIVE_VOTE_RePLACE
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]
To: Ingo Molnar <mingo@...>
Cc: David Miller <davem@...>, <torvalds@...>, <akpm@...>, <netdev@...>, <linux-kernel@...>
Date: Thursday, July 2, 2009 - 6:51 am

Ingo Molnar a écrit :



forcedeth might have a problem, in its netif_wake_queue() logic, but
I could not see why a recent patch could make this problem visible now.

CPU0/1: AMD Athlon(tm) 64 X2 Dual Core Processor 3800+ stepping 02
is not a new cpu either :)

forcedeth uses an internal tx_stop without appropriate barrier.

Could you try following patch ?

(random guess as I dont have much time right now)

Thank you


diff --git a/drivers/net/forcedeth.c b/drivers/net/forcedeth.c
index 1094d29..dc6bbde 100644
--- a/drivers/net/forcedeth.c
+++ b/drivers/net/forcedeth.c
@@ -2165,7 +2165,7 @@ static int nv_start_xmit(struct sk_buff *skb, struct net_device *dev)
 	empty_slots = nv_get_empty_tx_slots(np);
 	if (unlikely(empty_slots <= entries)) {
 		netif_stop_queue(dev);
-		np->tx_stop = 1;
+		set_mb(np->tx_stop, 1);
 		spin_unlock_irqrestore(&np->lock, flags);
 		return NETDEV_TX_BUSY;
 	}
@@ -2286,7 +2286,7 @@ static int nv_start_xmit_optimized(struct sk_buff *skb, struct net_device *dev)
 	empty_slots = nv_get_empty_tx_slots(np);
 	if (unlikely(empty_slots <= entries)) {
 		netif_stop_queue(dev);
-		np->tx_stop = 1;
+		set_mb(np->tx_stop, 1);
 		spin_unlock_irqrestore(&np->lock, flags);
 		return NETDEV_TX_BUSY;
 	}
@@ -2564,7 +2564,7 @@ static void nv_tx_timeout(struct net_device *dev)
 	else
 		status = readl(base + NvRegIrqStatus) & NVREG_IRQSTAT_MASK;
 
-	printk(KERN_INFO "%s: Got tx_timeout. irq: %08x\n", dev->name, status);
+	printk(KERN_INFO "%s: Got tx_timeout. irq: %08x tx_stop=%d\n", dev->name, status, np->tx_stop);
 
 	{
 		int i;
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]

Messages in current thread:
[PATCH net-2.6 6/7] jme: Tuning rxsum function, Guo-Fu Tseng, (Tue Jun 30, 5:14 pm)
[GIT]: Networking, David Miller, (Wed Jul 1, 12:39 am)
Re: [GIT]: Networking, Ingo Molnar, (Thu Jul 2, 3:57 am)
Re: [GIT]: Networking, Eric Dumazet, (Thu Jul 2, 6:51 am)
Re: [GIT]: Networking, Eric Dumazet, (Thu Jul 2, 10:04 am)
Re: [GIT]: Networking, Ayaz Abdulla, (Thu Jul 2, 12:13 pm)
Re: [GIT]: Networking, Eric Dumazet, (Thu Jul 2, 6:32 pm)
Re: [GIT]: Networking, Ayaz Abdulla, (Thu Jul 2, 1:29 pm)
Re: [GIT]: Networking, David Miller, (Thu Jul 2, 9:32 pm)
Re: [GIT]: Networking, Eric Dumazet, (Thu Jul 2, 8:07 pm)
RE: [GIT]: Networking, Ayaz Abdulla, (Thu Jul 2, 9:11 pm)
Re: [GIT]: Networking, David Miller, (Thu Jul 2, 9:30 pm)
Re: [GIT]: Networking, Ingo Molnar, (Thu Jul 2, 4:05 pm)
Re: [GIT]: Networking, Ingo Molnar, (Fri Jul 3, 5:46 pm)
Re: [GIT]: Networking, David Miller, (Sun Jul 5, 10:04 pm)
Re: [GIT]: Networking, Herbert Xu, (Sun Jul 5, 12:09 am)