[PATCH 2/8] selftests/mm: check that MADV_PAGEOUT skips holes and swapped pages

From: Gregory Price (Meta)

Date: Wed Oct 14 2026 - 13:58:30 EST


The contract tests check that MADV_COLD neither populates a PTE hole nor
faults a swapped page back in. MADV_PAGEOUT makes the same promises, so
check them for it too.

Signed-off-by: Gregory Price (Meta) <gourry@xxxxxxxxxx>
---
tools/testing/selftests/mm/madvise.c | 10 ++++++++++
1 file changed, 10 insertions(+)

diff --git a/tools/testing/selftests/mm/madvise.c b/tools/testing/selftests/mm/madvise.c
index bb4efb92e6da..42cc08fe45ae 100644
--- a/tools/testing/selftests/mm/madvise.c
+++ b/tools/testing/selftests/mm/madvise.c
@@ -85,6 +85,11 @@ TEST_F(madvise, cold_skips_pte_hole)
check_skips_pte_hole(_metadata, self->pagemap_fd, MADV_COLD);
}

+TEST_F(madvise, pageout_skips_pte_hole)
+{
+ check_skips_pte_hole(_metadata, self->pagemap_fd, MADV_PAGEOUT);
+}
+
/* Neither hint may be applied to locked memory. */
TEST_F(madvise, locked_vma_is_rejected)
{
@@ -131,4 +136,9 @@ TEST_F(madvise, cold_skips_swapped_pte)
check_skips_swapped_pte(_metadata, self->pagemap_fd, MADV_COLD);
}

+TEST_F(madvise, pageout_skips_swapped_pte)
+{
+ check_skips_swapped_pte(_metadata, self->pagemap_fd, MADV_PAGEOUT);
+}
+
TEST_HARNESS_MAIN
--
2.56.0