Re: [PATCH v2 04/14] mm: add VM_UFFD_RWP VMA flag
From: Kiryl Shutsemau
Date: Fri May 22 2026 - 07:01:24 EST
On Thu, May 14, 2026 at 05:29:31PM -0700, SeongJae Park wrote:
> On Fri, 8 May 2026 16:55:16 +0100 "Kiryl Shutsemau (Meta)" <kas@xxxxxxxxxx> wrote:
>
> > Preparatory patch for userfaultfd read-write protection (RWP). RWP
> > extends userfaultfd protection from plain write-protection (WP) to
> > full read-write protection: accesses to an RWP-protected range --
> > reads as well as writes -- trap through userfaultfd.
> >
> > RWP marks ranges by combining PAGE_NONE with the uffd PTE bit, so
> > the flag is only meaningful when both primitives exist. A new
> > CONFIG_USERFAULTFD_RWP Kconfig symbol auto-selects when CONFIG_64BIT,
> > CONFIG_ARCH_HAS_PTE_PROTNONE, and CONFIG_HAVE_ARCH_USERFAULTFD_WP
> > are all set; call sites that gate on the flag depend on the symbol.
> > Elsewhere VM_UFFD_RWP aliases VM_NONE and every downstream check
> > folds to dead code.
> >
> > Nothing sets the flag yet.
> >
> > Signed-off-by: Kiryl Shutsemau <kas@xxxxxxxxxx>
> > Assisted-by: Claude:claude-opus-4-6
>
> A silly but loud thought. Would it make more sense to put Signed-off-by: after
> Assisted-by: ?
I am not sure. I see it both ways in git log. And I don't have strong
opinion on the order here. Keeping as is.
> > ---
> > Documentation/filesystems/proc.rst | 1 +
> > fs/proc/task_mmu.c | 3 +++
> > include/linux/mm.h | 28 +++++++++++++++++----------
> > include/linux/userfaultfd_k.h | 31 +++++++++++++++++++++++++-----
> > include/trace/events/mmflags.h | 7 +++++++
> > mm/Kconfig | 9 +++++++++
> > 6 files changed, 64 insertions(+), 15 deletions(-)
> >
> > diff --git a/Documentation/filesystems/proc.rst b/Documentation/filesystems/proc.rst
> > index db6167befb7b..db28207c5290 100644
> > --- a/Documentation/filesystems/proc.rst
> > +++ b/Documentation/filesystems/proc.rst
> > @@ -607,6 +607,7 @@ encoded manner. The codes are the following:
> > um userfaultfd missing tracking
> > uw userfaultfd wr-protect tracking
> > ui userfaultfd minor fault
> > + ur userfaultfd read-write-protect tracking
>
> Yet another silly but loud thought. My first feeling on this was that this
> reads like 'u'serfaultfd 'r'ead-protect. And was further thinking 'uf' for
> just 'u'seffaultfd 'f'ault or 'up' for 'u'serfault-'p'rotect might make sense.
> But ended up thinking this is too trivial and ain't really matter.
I will keep it. It's "u" + the first distinguishing letter of the mode
name. r distinguishes RWP from WP cleanly.
> [...]
> > diff --git a/mm/Kconfig b/mm/Kconfig
> > index e8bf1e9e6ad9..ccf534a8cbc9 100644
> > --- a/mm/Kconfig
> > +++ b/mm/Kconfig
> > @@ -1347,6 +1347,15 @@ config HAVE_ARCH_USERFAULTFD_MINOR
> > help
> > Arch has userfaultfd minor fault support
> >
> > +config USERFAULTFD_RWP
> > + def_bool y
> > + depends on 64BIT && ARCH_HAS_PTE_PROTNONE && HAVE_ARCH_USERFAULTFD_WP
> > + help
> > + Userfaultfd read-write protection (UFFDIO_RWPROTECT) delivers a
>
> Seems UFFDIO_RWPROTECT will be introduced later. Would it make more sense to
> add this config together with the patch?
Okay, I will move later in the patchset.
> > + userfaultfd notification on every access -- read or write -- to a
> > + protected range, letting userspace observe the working set of a
> > + process.
> > +
> > menuconfig USERFAULTFD
> > bool "Enable userfaultfd() system call"
> > depends on MMU
> > --
> > 2.51.2
> >
> >
>
> None of my comments is a blocker.
>
> Reviewed-by: SeongJae Park <sj@xxxxxxxxxx>
Thanks!
--
Kiryl Shutsemau / Kirill A. Shutemov