On Thu, 2006-06-01 at 10:42 +1000, Herbert Xu wrote: > On Wed, May 31, 2006 at 04:01:06PM -0700, Michael Chan wrote: > > > > Oh, I thought your idea was to keep the LLTX and just replace tx_lock > > with xmit_lock in tg3. But I suppose we can also clear LLTX, remove the > > tx_lock in hard_start_xmit and convert the rest to avoid changing > > netpoll. > > That's what I meant. This has the advantage that things like AF_PACKET > won't see duplicate packets.
Now that I think about it some more, we can eliminate most of the tx_lock in tg3 without converting to xmit_lock. In most places, we get the tx_lock after we call netif_tx_disable(), etc, and quiesce the chip. So the tx_lock or xmit_lock is really not necessary in most places. The tp->lock is sufficient after we stop everything. The only few remaining places where we need it is around netif_stop_queue/netif_wake_queue in hard_start_xmit and tx completion. We can either keep the tx_lock or convert to xmit_lock and either way makes little difference because these are not in the normal fast path. If we keep the tx_lock, it will be just like BNX2. - To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html