Re: [PATCH v4 3/3] selftests/mm: run the MAP_DROPPABLE selftest

From: David Hildenbrand (Arm)

Date: Thu Apr 16 2026 - 04:42:40 EST


On 4/16/26 05:39, Anthony Yznaga wrote:
> The test was not being run by the selftest framework so it was never
> noticed that it would fail with an assertion failure on configs without
> support for MAP_DROPPABLE. Update the test so that it is skipped instead
> when MAP_DROPPABLE is not supported, and add it to the mmap category so
> that the test is run by the framework.
>
> Signed-off-by: Anthony Yznaga <anthony.yznaga@xxxxxxxxxx>
> ---
> tools/testing/selftests/mm/droppable.c | 9 ++++++++-
> tools/testing/selftests/mm/run_vmtests.sh | 1 +
> 2 files changed, 9 insertions(+), 1 deletion(-)
>
> diff --git a/tools/testing/selftests/mm/droppable.c b/tools/testing/selftests/mm/droppable.c
> index 44940f75c461..30c8be37fcb9 100644
> --- a/tools/testing/selftests/mm/droppable.c
> +++ b/tools/testing/selftests/mm/droppable.c
> @@ -26,7 +26,14 @@ int main(int argc, char *argv[])
> ksft_set_plan(1);
>
> alloc = mmap(0, alloc_size, PROT_READ | PROT_WRITE, MAP_ANONYMOUS | MAP_DROPPABLE, -1, 0);
> - assert(alloc != MAP_FAILED);
> + if (alloc == MAP_FAILED) {
> + if ((errno == EOPNOTSUPP) || (errno == EINVAL)) {
> + ksft_test_result_skip("MAP_DROPPABLE not supported\n");
> + exit(KSFT_SKIP);
> + }
> + ksft_test_result_fail("mmap error: %s\n", strerror(errno));
> + exit(KSFT_FAIL);
> + }
> memset(alloc, 'A', alloc_size);
> for (size_t i = 0; i < alloc_size; i += page_size)
> assert(*(uint8_t *)(alloc + i));
> diff --git a/tools/testing/selftests/mm/run_vmtests.sh b/tools/testing/selftests/mm/run_vmtests.sh
> index d8468451b3a3..e1e355d50e65 100755
> --- a/tools/testing/selftests/mm/run_vmtests.sh
> +++ b/tools/testing/selftests/mm/run_vmtests.sh
> @@ -382,6 +382,7 @@ else
> fi
>
> CATEGORY="mmap" run_test ./map_populate
> +CATEGORY="mmap" run_test ./droppable
>
> CATEGORY="mlock" run_test ./mlock-random-test
>

On my older kernel:

$ ./droppable
TAP version 13
1..1
ok 1 # SKIP MAP_DROPPABLE not supported

Acked-by: David Hildenbrand (Arm) <david@xxxxxxxxxx>

--
Cheers,

David