Re: [PATCH 0/2] page_count can't be used to decide when wp_page_copy

From: Matthew Wilcox
Date: Sat Jan 09 2021 - 14:34:29 EST


On Thu, Jan 07, 2021 at 01:05:19PM -0800, Linus Torvalds wrote:
> Side note, and not really related to UFFD, but the mmap_sem in
> general: I was at one point actually hoping that we could make the
> mmap_sem a spinlock, or at least make the rule be that we never do any
> IO under it. At which point a write lock hopefully really shouldn't be
> such a huge deal.

There's a (small) group of us working towards that. It has some
prerequisites, but where we're hoping to go currently:

- Replace the vma rbtree with a b-tree protected with a spinlock
- Page faults walk the b-tree under RCU, like peterz/laurent's SPF patchset
- If we need to do I/O, take a refcount on the VMA

After that, we can gradually move things out from mmap_sem protection
to just the vma tree spinlock, or whatever makes sense for them. In a
very real way the mmap_sem is the MM layer's BKL.