On Tue, Dec 05, 2017 at 10:28:38PM +0200, Michael S. Tsirkin wrote:
On Tue, Dec 05, 2017 at 08:57:52PM +0100, Peter Zijlstra wrote:
quoted
On Tue, Dec 05, 2017 at 09:51:48PM +0200, Michael S. Tsirkin wrote:
quoted
quoted
quoted
WRITE_ONCE(obj->val, 1);
smp_wmb();
WRITE_ONCE(*foo, obj);
I believe Peter was instead suggesting:
WRITE_ONCE(obj->val, 1);
smp_store_release(foo, obj);
Isn't that more expensive though?
Depends on the architecture. The only architecture where it is more
expensive and people actually still care about is ARM I think.
Right. Why should I use the more expensive smp_store_release then?
Because it makes more sense. Memory ordering is hard enough, don't make
it harder still if you don't have to.