netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* acenic lockup
@ 2003-05-07  7:06 Anton Blanchard
  2003-05-07  6:43 ` David S. Miller
  0 siblings, 1 reply; 10+ messages in thread
From: Anton Blanchard @ 2003-05-07  7:06 UTC (permalink / raw)
  To: jes; +Cc: kuznet, netdev


Hi,

Ive got a bucketload of acenic adapters in a ppc64 box. I get random
tx timeouts, I suspect there is a missing memory barrier (power4 is
good at catching those). Still looking.

I did manage to lock a card up in ace_start_xmit:

restart:
...
        if (tx_ring_full(ap, ap->tx_ret_csm, idx))
	                goto overflow;
...
overflow:
        /*
         * This race condition is unavoidable with lock-free drivers.
         * We wake up the queue _before_ tx_prd is advanced, so that we
         * can
         * enter hard_start_xmit too early, while tx ring still looks
         * closed.
         * This happens ~1-4 times per 100000 packets, so that we can
         * allow
         * to loop syncing to other CPU. Probably, we need an additional
         * wmb() in ace_tx_intr as well.
         *
         * Note that this race is relieved by reserving one more entry
         * in tx ring than it is necessary (see original non-SG driver).
         * However, with SG we need to reserve 2*MAX_SKB_FRAGS+1, which
         * is already overkill.
         *
         * Alternative is to return with 1 not throttling queue. In this
         * case loop becomes longer, no more useful effects.
         */
        barrier();
        goto restart;

Its stuck there and never coming out. Alexey: I have a feeling you
wrote this code, is that correct? :)

Anton

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

end of thread, other threads:[~2003-05-14 11:40 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2003-05-07  7:06 acenic lockup Anton Blanchard
2003-05-07  6:43 ` David S. Miller
2003-05-07 17:06   ` Alexey Kuznetsov
2003-05-07 19:34     ` David S. Miller
2003-05-07 22:21       ` Alexey Kuznetsov
2003-05-08 16:00         ` David S. Miller
2003-05-08 17:11           ` Jeff Garzik
2003-05-08 16:09             ` David S. Miller
2003-05-08 17:27               ` Jeff Garzik
2003-05-14 11:40                 ` Jamal Hadi

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).