[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <1378222940.7360.34.camel@edumazet-glaptop>
Date: Tue, 03 Sep 2013 08:42:20 -0700
From: Eric Dumazet <eric.dumazet@...il.com>
To: Per Dalén <per.dalen@...eartv.com>
Cc: Claudiu Manoil <claudiu.manoil@...escale.com>,
netdev@...r.kernel.org
Subject: Re: BQL support in gianfar causes network hiccup
On Tue, 2013-09-03 at 09:55 +0200, Per Dalén wrote:
> Yes, it's weird. The only reason I removed the BQL commit
> (d8a0f1b0af67679bba886784de10d8c21acc4e0e) was because the error Tino
> Keitel had was the similar as mine.
I suspect a genuine race in this driver. BQL only makes this race happen
more often.
gfar_poll_sq() has the following :
/* run Tx cleanup to completion */
if (tx_queue->tx_skbuff[tx_queue->skb_dirtytx])
gfar_clean_tx_ring(tx_queue);
While gfar_poll() has a different method :
if (tx_queue->tx_skbuff[tx_queue->skb_dirtytx]) {
gfar_clean_tx_ring(tx_queue);
has_tx_work = 1;
}
Note the has_tx_work use in gfar_poll() only.
Note that memory barriers seems to be missing.
1) In your cases, is it gfar_poll_sq() or gfar_poll() that is used ?
2) Is the bug happening if only one CPU is used ?
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists