Re: [PATCH v2 10/14] mm/pagemap: add PAGE_IS_ACCESSED for RWP tracking

From: Mike Rapoport

Date: Tue May 12 2026 - 13:42:22 EST


On Fri, May 08, 2026 at 04:55:22PM +0100, Kiryl Shutsemau (Meta) wrote:
> PAGEMAP_SCAN already reports PAGE_IS_WRITTEN from the inverted uffd
> PTE bit, targeting the UFFDIO_WRITEPROTECT workflow. UFFDIO_RWPROTECT
> reuses the same PTE bit as a marker for read-write protection, but
> "has been written" and "has been accessed" are distinct semantic
> signals — they happen to share one PTE bit today only because the two
> implementations share infrastructure.
>
> Give RWP its own pagemap category so the UAPI does not conflate them:
>
> PAGE_IS_WRITTEN reported on VM_UFFD_WP VMAs, !pte_uffd(pte)
> PAGE_IS_ACCESSED reported on VM_UFFD_RWP VMAs, !pte_uffd(pte)
>
> Both still read the same PTE bit today, but each is scoped to the VMA
> whose registered mode makes the bit meaningful. If a future
> implementation moves RWP to a separate PTE bit, only PAGE_IS_ACCESSED
> switches over.
>
> This is a UAPI narrowing. Outside VM_UFFD_WP VMAs the uffd bit is
> always clear, so PAGEMAP_SCAN used to flag PAGE_IS_WRITTEN on every
> present PTE there — a meaningless duplicate of PAGE_IS_PRESENT. Now
> PAGE_IS_WRITTEN fires only inside VM_UFFD_WP VMAs.
>
> pagemap_hugetlb_category() now takes the vma like its PTE/PMD peers.
>
> Signed-off-by: Kiryl Shutsemau <kas@xxxxxxxxxx>
> Assisted-by: Claude:claude-opus-4-6

Acked-by: Mike Rapoport (Microsoft) <rppt@xxxxxxxxxx>

> ---
> Documentation/admin-guide/mm/pagemap.rst | 13 ++++-
> fs/proc/task_mmu.c | 73 ++++++++++++++++++------
> include/uapi/linux/fs.h | 1 +
> tools/include/uapi/linux/fs.h | 1 +
> 4 files changed, 67 insertions(+), 21 deletions(-)

--
Sincerely yours,
Mike.