[PATCH] selftests/mm: remove PROT_EXEC req from file-collapse tests

Zach O'Keefe posted 1 patch 3 weeks, 2 days ago
tools/testing/selftests/mm/khugepaged.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
[PATCH] selftests/mm: remove PROT_EXEC req from file-collapse tests
Posted by Zach O'Keefe 3 weeks, 2 days ago
As of v6.8 commit 7fbb5e188248 ("mm: remove VM_EXEC requirement for THP eligibility")
thp collapse no longer requires file-backed mappings be created with
PROT_EXEC.

Remove the overly-strict dependency from thp collapse tests so we test
the least-strict requirement for success.

Signed-off-by: Zach O'Keefe <zokeefe@google.com>
---
 tools/testing/selftests/mm/khugepaged.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/tools/testing/selftests/mm/khugepaged.c b/tools/testing/selftests/mm/khugepaged.c
index a18c50d51141..3fe7ef04ac62 100644
--- a/tools/testing/selftests/mm/khugepaged.c
+++ b/tools/testing/selftests/mm/khugepaged.c
@@ -394,7 +394,7 @@ static void *file_setup_area(int nr_hpages)
 		perror("open()");
 		exit(EXIT_FAILURE);
 	}
-	p = mmap(BASE_ADDR, size, PROT_READ | PROT_EXEC,
+	p = mmap(BASE_ADDR, size, PROT_READ,
 		 MAP_PRIVATE, finfo.fd, 0);
 	if (p == MAP_FAILED || p != BASE_ADDR) {
 		perror("mmap()");
-- 
2.51.0.384.g4c02a37b29-goog
Re: [PATCH] selftests/mm: remove PROT_EXEC req from file-collapse tests
Posted by Wei Yang 3 weeks, 1 day ago
On Tue, Sep 09, 2025 at 12:05:34PM -0700, Zach O'Keefe wrote:
>As of v6.8 commit 7fbb5e188248 ("mm: remove VM_EXEC requirement for THP eligibility")
>thp collapse no longer requires file-backed mappings be created with
>PROT_EXEC.
>

One question, what if user run this new version test on old kernel?

Is there a guideline for user?

>Remove the overly-strict dependency from thp collapse tests so we test
>the least-strict requirement for success.
>
>Signed-off-by: Zach O'Keefe <zokeefe@google.com>
>---
> tools/testing/selftests/mm/khugepaged.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
>diff --git a/tools/testing/selftests/mm/khugepaged.c b/tools/testing/selftests/mm/khugepaged.c
>index a18c50d51141..3fe7ef04ac62 100644
>--- a/tools/testing/selftests/mm/khugepaged.c
>+++ b/tools/testing/selftests/mm/khugepaged.c
>@@ -394,7 +394,7 @@ static void *file_setup_area(int nr_hpages)
> 		perror("open()");
> 		exit(EXIT_FAILURE);
> 	}
>-	p = mmap(BASE_ADDR, size, PROT_READ | PROT_EXEC,
>+	p = mmap(BASE_ADDR, size, PROT_READ,
> 		 MAP_PRIVATE, finfo.fd, 0);
> 	if (p == MAP_FAILED || p != BASE_ADDR) {
> 		perror("mmap()");
>-- 
>2.51.0.384.g4c02a37b29-goog
>

-- 
Wei Yang
Help you, Help me
Re: [PATCH] selftests/mm: remove PROT_EXEC req from file-collapse tests
Posted by David Hildenbrand 3 weeks, 1 day ago
On 10.09.25 11:16, Wei Yang wrote:
> On Tue, Sep 09, 2025 at 12:05:34PM -0700, Zach O'Keefe wrote:
>> As of v6.8 commit 7fbb5e188248 ("mm: remove VM_EXEC requirement for THP eligibility")
>> thp collapse no longer requires file-backed mappings be created with
>> PROT_EXEC.
>>
> 
> One question, what if user run this new version test on old kernel?
> 
> Is there a guideline for user?

We try to keep some older kernel working as long as it is easy, so 
people have to do less manual work of filtering out false positives if 
they happen to run these tests on older kernels.

6.8 was from end 2023, not sure if we still care about that.

-- 
Cheers

David / dhildenb
Re: [PATCH] selftests/mm: remove PROT_EXEC req from file-collapse tests
Posted by David Hildenbrand 3 weeks, 1 day ago
On 09.09.25 21:05, Zach O'Keefe wrote:
> As of v6.8 commit 7fbb5e188248 ("mm: remove VM_EXEC requirement for THP eligibility")
> thp collapse no longer requires file-backed mappings be created with
> PROT_EXEC.
> 
> Remove the overly-strict dependency from thp collapse tests so we test
> the least-strict requirement for success.
> 
> Signed-off-by: Zach O'Keefe <zokeefe@google.com>
> ---
>   tools/testing/selftests/mm/khugepaged.c | 2 +-
>   1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/tools/testing/selftests/mm/khugepaged.c b/tools/testing/selftests/mm/khugepaged.c
> index a18c50d51141..3fe7ef04ac62 100644
> --- a/tools/testing/selftests/mm/khugepaged.c
> +++ b/tools/testing/selftests/mm/khugepaged.c
> @@ -394,7 +394,7 @@ static void *file_setup_area(int nr_hpages)
>   		perror("open()");
>   		exit(EXIT_FAILURE);
>   	}
> -	p = mmap(BASE_ADDR, size, PROT_READ | PROT_EXEC,
> +	p = mmap(BASE_ADDR, size, PROT_READ,
>   		 MAP_PRIVATE, finfo.fd, 0);
>   	if (p == MAP_FAILED || p != BASE_ADDR) {
>   		perror("mmap()");

Acked-by: David Hildenbrand <david@redhat.com>

-- 
Cheers

David / dhildenb
Re: [PATCH] selftests/mm: remove PROT_EXEC req from file-collapse tests
Posted by Dev Jain 3 weeks, 1 day ago
On 10/09/25 12:35 am, Zach O'Keefe wrote:
> As of v6.8 commit 7fbb5e188248 ("mm: remove VM_EXEC requirement for THP eligibility")
> thp collapse no longer requires file-backed mappings be created with
> PROT_EXEC.
>
> Remove the overly-strict dependency from thp collapse tests so we test
> the least-strict requirement for success.
>
> Signed-off-by: Zach O'Keefe <zokeefe@google.com>

LGTM

Reviewed-by: Dev Jain <dev.jain@arm.com>
Re: [PATCH] selftests/mm: remove PROT_EXEC req from file-collapse tests
Posted by Baolin Wang 3 weeks, 1 day ago

On 2025/9/10 03:05, Zach O'Keefe wrote:
> As of v6.8 commit 7fbb5e188248 ("mm: remove VM_EXEC requirement for THP eligibility")
> thp collapse no longer requires file-backed mappings be created with
> PROT_EXEC.
> 
> Remove the overly-strict dependency from thp collapse tests so we test
> the least-strict requirement for success.
> 
> Signed-off-by: Zach O'Keefe <zokeefe@google.com>
> ---

LGTM.
Reviewed-by: Baolin Wang <baolin.wang@linux.alibaba.com>

>   tools/testing/selftests/mm/khugepaged.c | 2 +-
>   1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/tools/testing/selftests/mm/khugepaged.c b/tools/testing/selftests/mm/khugepaged.c
> index a18c50d51141..3fe7ef04ac62 100644
> --- a/tools/testing/selftests/mm/khugepaged.c
> +++ b/tools/testing/selftests/mm/khugepaged.c
> @@ -394,7 +394,7 @@ static void *file_setup_area(int nr_hpages)
>   		perror("open()");
>   		exit(EXIT_FAILURE);
>   	}
> -	p = mmap(BASE_ADDR, size, PROT_READ | PROT_EXEC,
> +	p = mmap(BASE_ADDR, size, PROT_READ,
>   		 MAP_PRIVATE, finfo.fd, 0);
>   	if (p == MAP_FAILED || p != BASE_ADDR) {
>   		perror("mmap()");