David Miller wrote: > /* run TX completion thread */ > if (sblk->idx[0].tx_consumer != tp->tx_cons) { > - tg3_tx(tp); > + netif_tx_lock(netdev); > + __tg3_tx(tp); > + netif_tx_unlock(netdev); >
This will lead to more and longer lock contentions between ->hard_start_xmit() and ->poll() in the normal fast path. Why do we need to widen the scope of netif_tx_lock() in this case? By not taking the netif_tx_lock() during tx completions until the last moment and only when necessary improves the performance substantially. - 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