Linus Torvalds writes: (Summary)
I don't think atomic memops do that.
I don't think atomic memops do that.
They enforce globally visible ordering, but since they happen in the cache and is not actually visible to outside, that doesn't actually affect any streaming write buffers.
affect any streaming write buffers.
Then, if somebody else requests a cacheline that we have exclusive ownership to, the write buffers just need to flush before we give up that cacheline.
that cacheline.
So a locked memory op is *not* serializing, it only enforces memory ordering.
I don't think atomic memops do that.
They enforce globally visible ordering, but since they happen in the cache and is not actually visible to outside, that doesn't actually affect any streaming write buffers.
affect any streaming write buffers.
Then, if somebody else requests a cacheline that we have exclusive ownership to, the write buffers just need to flush before we give up that cacheline.
that cacheline.
So a locked memory op is *not* serializing, it only enforces memory ordering.