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

Reply via email to