[PATCH 0/3 v2] fs/proc: extend the PAGEMAP_SCAN ioctl to report guard regions

From: Andrei Vagin
Date: Mon Mar 24 2025 - 02:54:50 EST


Introduce the PAGE_IS_GUARD flag in the PAGEMAP_SCAN ioctl to expose
information about guard regions. This allows userspace tools, such as
CRIU, to detect and handle guard regions.

Currently, CRIU utilizes PAGEMAP_SCAN as a more efficient alternative to
parsing /proc/pid/pagemap. Without this change, guard regions are
incorrectly reported as swap-anon regions, leading CRIU to attempt
dumping them and subsequently failing.

This series should be applied on top of "[PATCH 0/2] fs/proc/task_mmu:
add guard region bit to pagemap":
https://lore.kernel.org/all/2025031926-engraved-footer-3e9b@gregkh/T/

The series includes updates to the documentation and selftests to
reflect the new functionality.

v2:
- sync linux/fs.h with the kernel sources
- address comments from Lorenzo and David.

Andrei Vagin (3):
fs/proc: extend the PAGEMAP_SCAN ioctl to report guard regions
tools headers UAPI: Sync linux/fs.h with the kernel sources
selftests/mm: add PAGEMAP_SCAN guard region test

Documentation/admin-guide/mm/pagemap.rst | 1 +
fs/proc/task_mmu.c | 17 ++++---
include/uapi/linux/fs.h | 1 +
tools/include/uapi/linux/fs.h | 19 +++++++-
tools/testing/selftests/mm/guard-regions.c | 57 ++++++++++++++++++++++
5 files changed, 87 insertions(+), 8 deletions(-)

--
2.49.0.rc1.451.g8f38331e32-goog