[openib-general] Re: LLTX and netif_stop_queue
Patrick McHardy
kaber at trash.net
Thu Dec 23 08:37:24 PST 2004
Eric Lemoine wrote:
> I still have one concern with the LLTX code (and it may be that the
> correct patch is Jamal's) :
>
> Without LLTX we do : lock(queue_lock), lock(xmit_lock),
> release(queue_lock), release(xmit_lock). With LLTX (without Jamal's
> patch) we do : lock(queue_lock), release(queue_lock), lock(tx_lock),
> release(tx_lock). LLTX doesn't look correct because it creates a race
> condition window between the the two lock-protected sections. So you
> may want to reconsider Jamal's patch or pull out LLTX...
You're right, it can cause packet reordering if something like this
happens:
CPU1 CPU2
lock(queue_lock)
dequeue
unlock(queue_lock)
lock(queue_lock)
dequeue
unlock(queue_lock)
lock(xmit_lock)
hard_start_xmit
unlock(xmit_lock)
lock(xmit_lock)
hard_start_xmit
unlock(xmit_lock)
Jamal's patch should fix this.
Regards
Patrick
More information about the general
mailing list