Re: [PATCH v6 10/16] mm: replace vm_lock and detached flag with a reference count

Liam R. Howlett
2024-12-19T18:55:42Z

* Peter Zijlstra <peterz@infradead.org> [241219 13:47]:
> On Thu, Dec 19, 2024 at 01:18:23PM -0500, Liam R. Howlett wrote:
>
> > > For RCU lookups only the mas tree matters -- and its left present there.
> > >
> > > If you really want to block RCU readers, I would suggest punching a hole
> > > in the mm_mt. All the traditional code won't notice anyway, this is all
> > > with mmap_lock held for writing.
> >
> > We don't want to block all rcu readers, we want to block the rcu readers
> > that would see the problem - that is, anyone trying to read a particular
> > area.
> >
> > Right now we can page fault in unpopulated vmas while writing other vmas
> > to the tree. We are also moving more users to rcu reading to use the
> > vmas they need without waiting on writes to finish.
> >
> > Maybe I don't understand your suggestion, but I would think punching a
> > hole would lose this advantage?
>
> My suggestion was to remove the range stuck in mas_detach from mm_mt.
> That is exactly the affected range, no?

Yes.

But then looping over the vmas will show a gap where there should not be
a gap.

If we stop rcu readers entirely we lose the advantage.

This is exactly the issue that the locking dance was working around :)