Jamal wrote:

>     tg3_start_xmit():
>     
>       prepare skb                       
>       grab ring tx lock irq safe
>       put skb on ring
>       if (full-ring)
>           stop
>       release ring tx lock and restore flags blah 


The whole point of doing things the way it is done in tg3
is to avoid taking the lock unless there is a need to stop
the queue or wake the queue.

With a 511 entry send ring in tg3, filling the entire tx
ring should not happen all the time.  Even if we fill the
tx ring constantly, the hysteresis effect of waking the
queue only after the tx ring is 3/4 empty will make it
uncommon to do stop_queue and wake_queue.  So it is the
right thing to do to optimize for the case where the
ring is not full.  The penalty is that we need some extra
checking after stopping the queue which should be the
uncommon case.

-
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