Quoting r. Roland Dreier <[EMAIL PROTECTED]>:
> Subject: Re: [PATCH (updated)] ipoib: dont lock tx on completion
> 
>     Michael> Hmm, I think I have it covered.
> 
>     Michael> If the read of netif_queue_stopped is delayed by a huge
>     Michael> margin, we see the interface stopped and wake it up.
> 
>     Michael> If the read of tx_tail is delayed, we see the tail
>     Michael> updated and wake it up in the send routine.
> 
>     Michael> No? What is the race you see?
> 
> I think the wmb() has to at least become barrier() -- otherwise the
> send routine has no reason to reread tx_tail after it stops the queue.
> 
> I don't see a specific race -- I'm just not totally comfortable yet,
> even with that fixed.  The issue is not necessarily reads being
> delayed, since both an out-of-order CPU and a compiler may move reads
> much _earlier_ than they appear in the code (for example a read may be
> speculatively executed because of branch prediction for a test in an
> if statement).
> 
>  - R.
> 

Can they be moved to before the wmb? I think not.

-- 
MST - Michael S. Tsirkin
_______________________________________________
openib-general mailing list
[email protected]
http://openib.org/mailman/listinfo/openib-general

To unsubscribe, please visit http://openib.org/mailman/listinfo/openib-general

Reply via email to