Messages in this thread | | | Date | Thu, 3 Oct 2013 17:45:21 -0700 | Subject | Re: [PATCH 17/17] RCU'd vfsmounts | From | Linus Torvalds <> |
| |
On Thu, Oct 3, 2013 at 5:41 PM, Josh Triplett <josh@joshtriplett.org> wrote: > > Read, yes, but I don't think that's enough to force your example above > to work in all cases. That requires semantics beyond what RCU's > primitives guarantee, and I don't think you can draw conclusions about > those semantics without talking about CPU memory barriers.
We seriosly depend on nothing leaking out. Not just reads. The "U" in RCU is "update". So it's reads, and it's writes. The fact that it says "read" in "rcu_read_lock()" doesn't mean that only reads would be affected.
And no, this still has nothing to do with memory barriers. Every single RCU user depends on the memory freeing being delayed by RCU, for example. And again, that's not just reads. It's people taking spinlocks on things that are RCU-protected etc.
So no, there is no question about this. The only question would be whether we have some RCU mode that is _buggy_, not whether you need extra memory barriers. And that is certainly possible.
Linus
| |