Messages in this thread | | | Date | Tue, 21 Oct 2014 10:22:03 +0200 | From | Peter Zijlstra <> | Subject | Re: [RFC][PATCH 4/6] SRCU free VMAs |
| |
On Mon, Oct 20, 2014 at 04:41:45PM -0700, Linus Torvalds wrote: > On Mon, Oct 20, 2014 at 2:56 PM, Peter Zijlstra <peterz@infradead.org> wrote: > > Manage the VMAs with SRCU such that we can do a lockless VMA lookup. > > Can you explain why srcu, and not plain regular rcu? > > Especially as you then *note* some of the problems srcu can have. > Making it regular rcu would also seem to make it possible to make the > seqlock be just a seqcount, no?
Ah, the reason I did the seqlock is because the read side will spin-wait for &1 to go away. If the write side is preemptible that's horrid. I used seqlock because that takes a lock (and thus disables preemption) on the write side, but I could equally have done:
preempt_disable(); write_seqcount_begin();
...
write_seqcount_end(); preempt_disable();
Since the lock is indeed superfluous, we're already fully serialized by mmap_sem in this path.
Using regular RCU isn't sufficient, because of PREEMPT_RCU.
| |