[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <f00c7f8c-a596-4d96-8e45-43fc3fb4736a@redhat.com>
Date: Wed, 3 Sep 2025 13:57:05 -0400
From: Waiman Long <llong@...hat.com>
To: André Almeida <andrealmeid@...lia.com>,
Sebastian Andrzej Siewior <bigeasy@...utronix.de>,
linux-kernel@...r.kernel.org
Cc: Darren Hart <dvhart@...radead.org>, Davidlohr Bueso <dave@...olabs.net>,
Ingo Molnar <mingo@...hat.com>, Juri Lelli <juri.lelli@...hat.com>,
Peter Zijlstra <peterz@...radead.org>, Thomas Gleixner <tglx@...utronix.de>,
Valentin Schneider <vschneid@...hat.com>, Borislav Petkov <bp@...en8.de>,
kernel-dev@...lia.com
Subject: Re: [PATCH 2/2] selftest/futex: Reintroduce "Memory out of range"
numa_mpol's subtest
On 9/1/25 4:33 PM, André Almeida wrote:
> Commit d8e2f919997 ("selftests/futex: Fix some futex_numa_mpol
> subtests") removed the "Memory out of range" subtest due to it being
> dependent on the memory layout of the test process having an invalid
> memory address just after the `*futex_ptr` allocated memory.
>
> Reintroduce this test and make it deterministic, by allocation two
> memory pages and marking the second one with PROT_NONE.
>
> Signed-off-by: André Almeida <andrealmeid@...lia.com>
> ---
> This patch is aimed for 6.18
> ---
> .../testing/selftests/futex/functional/futex_numa_mpol.c | 8 +++++++-
> 1 file changed, 7 insertions(+), 1 deletion(-)
>
> diff --git a/tools/testing/selftests/futex/functional/futex_numa_mpol.c b/tools/testing/selftests/futex/functional/futex_numa_mpol.c
> index c84441751235..e4b840184b1d 100644
> --- a/tools/testing/selftests/futex/functional/futex_numa_mpol.c
> +++ b/tools/testing/selftests/futex/functional/futex_numa_mpol.c
> @@ -174,10 +174,13 @@ int main(int argc, char *argv[])
> ksft_set_plan(1);
>
> mem_size = sysconf(_SC_PAGE_SIZE);
> - futex_ptr = mmap(NULL, mem_size, PROT_READ | PROT_WRITE, MAP_PRIVATE | MAP_ANONYMOUS, 0, 0);
> + futex_ptr = mmap(NULL, mem_size * 2, PROT_READ | PROT_WRITE, MAP_PRIVATE | MAP_ANONYMOUS, 0, 0);
> if (futex_ptr == MAP_FAILED)
> ksft_exit_fail_msg("mmap() for %d bytes failed\n", mem_size);
>
> + /* Create an invalid memory region for the "Memory out of range" test */
> + mprotect(futex_ptr + mem_size, mem_size, PROT_NONE);
> +
> futex_numa = futex_ptr;
>
> ksft_print_msg("Regular test\n");
> @@ -192,6 +195,9 @@ int main(int argc, char *argv[])
> ksft_print_msg("Mis-aligned futex\n");
> test_futex(futex_ptr + mem_size - 4, 22);
>
> + ksft_print_msg("Memory out of range\n");
> + test_futex(futex_ptr + mem_size, 14);
> +
> futex_numa->numa = FUTEX_NO_NODE;
> mprotect(futex_ptr, mem_size, PROT_READ);
> ksft_print_msg("Memory, RO\n");
Reviewed-by: Waiman Long <longman@...hat.com>
Powered by blists - more mailing lists