* [PATCH v6.18.y v2] selftests/mm: hugepage-mremap: fix mapping alignment
@ 2026-09-28 13:09 Luiz Capitulino
2026-09-28 22:39 ` Sasha Levin
0 siblings, 1 reply; 3+ messages in thread
From: Luiz Capitulino @ 2026-09-28 13:09 UTC (permalink / raw)
To: stable, sashal; +Cc: rppt, sayalip, linux-mm, linux-kernel
commit a914785f6349da754e1226420bf4e51961956769 upstream.
When running the HugeTLB kselftest suite on arm64 with 64K base pages,
this test always fails:
# -------------------------
# running ./hugepage-mremap
# -------------------------
# TAP version 13
# 1..1
# # Map haddr: Returned address is 0x7eaa40000000
# # Map daddr: Returned address is 0x7daa40000000
# # Map vaddr: Returned address is 0x7faa40000000
# Bail out! ioctl-UFFDIO_REGISTER: Invalid argument
# # Planned tests != run tests (1 != 0)
# # Totals: pass:0 fail:0 xfail:0 xpass:0 skip:0 error:0
# [FAIL]
not ok 1 hugepage-mremap # exit=1
# NOTE: These hugetlb tests provide minimal coverage. Use
# https://github.com/libhugetlbfs/libhugetlbfs.git for
# hugetlb regression testing.
# SKIP ./uffd-wp-mremap
The problem is that the default HugeTLB page size on such systems is
512 MiB and 'length' is not aligned to the page size. This causes
uffd_register() to fail as 'length' is 10 MiB and not aligned to the
HugeTLB page size.
On upstream this was fixed by a914785f6349 ("selftests/mm: hugetlb-mremap:
add setup of HugeTLB pages") as that commit aligns 'length' to the
default HugeTLB page size as part of what it's doing. Since this commit
is part of a 50+ patch series, we backport only the 'length' alignment
bits to fix the test.
Signed-off-by: Luiz Capitulino <luizcap@redhat.com>
---
tools/testing/selftests/mm/hugepage-mremap.c | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/tools/testing/selftests/mm/hugepage-mremap.c b/tools/testing/selftests/mm/hugepage-mremap.c
index 928c1045e295..0d4e1a5b185d 100644
--- a/tools/testing/selftests/mm/hugepage-mremap.c
+++ b/tools/testing/selftests/mm/hugepage-mremap.c
@@ -97,6 +97,7 @@ static void register_region_with_uffd(char *addr, size_t len)
int main(int argc, char *argv[])
{
+ unsigned long hugepage_size;
size_t length = 0;
int ret = 0, fd;
@@ -114,7 +115,12 @@ int main(int argc, char *argv[])
else
length = DEFAULT_LENGTH_MB;
+ hugepage_size = default_huge_page_size();
+ if (!hugepage_size)
+ ksft_exit_skip("Could not detect default hugetlb page size\n");
+
length = MB_TO_BYTES(length);
+ length = (length + hugepage_size - 1) & ~(hugepage_size - 1);
fd = memfd_create(argv[0], MFD_HUGETLB);
if (fd < 0)
ksft_exit_fail_msg("Open failed: %s\n", strerror(errno));
--
2.55.0
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [PATCH v6.18.y v2] selftests/mm: hugepage-mremap: fix mapping alignment
2026-09-28 13:09 [PATCH v6.18.y v2] selftests/mm: hugepage-mremap: fix mapping alignment Luiz Capitulino
@ 2026-09-28 22:39 ` Sasha Levin
2026-09-29 14:18 ` Luiz Capitulino
0 siblings, 1 reply; 3+ messages in thread
From: Sasha Levin @ 2026-09-28 22:39 UTC (permalink / raw)
To: stable
Cc: Sasha Levin, rppt, sayalip, linux-mm, linux-kernel, Luiz Capitulino
> commit a914785f6349da754e1226420bf4e51961956769 upstream.
a914785f6349 ("selftests/mm: hugetlb-mremap: add setup of HugeTLB pages") is
Mike's commit, but this patch has you as the author with only your
Signed-off-by. Could you send a v3 that keeps Mike as the author with his
Signed-off-by, followed by yours, or otherwise makes the provenance explicit?
The same applies to the 6.12.y posting.
--
Thanks,
Sasha
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [PATCH v6.18.y v2] selftests/mm: hugepage-mremap: fix mapping alignment
2026-09-28 22:39 ` Sasha Levin
@ 2026-09-29 14:18 ` Luiz Capitulino
0 siblings, 0 replies; 3+ messages in thread
From: Luiz Capitulino @ 2026-09-29 14:18 UTC (permalink / raw)
To: Sasha Levin, stable; +Cc: rppt, sayalip, linux-mm, linux-kernel
On 9/28/26 6:39 PM, Sasha Levin wrote:
>> commit a914785f6349da754e1226420bf4e51961956769 upstream.
>
> a914785f6349 ("selftests/mm: hugetlb-mremap: add setup of HugeTLB pages") is
> Mike's commit, but this patch has you as the author with only your
> Signed-off-by. Could you send a v3 that keeps Mike as the author with his
> Signed-off-by, followed by yours, or otherwise makes the provenance explicit?
>
> The same applies to the 6.12.y posting.
My intent was to explain what was being fixed and why and, as it's a
partial backport, I decided to author the change. But I'm keeping Mike's
original changelog & authorship now, can you review it before I post?
Note that the subject will change as a result.
"""
From: "Mike Rapoport (Microsoft)" <rppt@kernel.org>
Date: Mon, 11 May 2026 19:28:25 +0300
Subject: [PATCH v6.18.y v3] selftests/mm: hugetlb-mremap: add setup of HugeTLB pages
commit a914785f6349da754e1226420bf4e51961956769 upstream.
hugetlb-mremap test fails if there are no free huge pages prepared by a
wrapper script.
Add setup of HugeTLB pages to the test and make sure that the original
settings are restored on the test exit.
Link: https://lore.kernel.org/20260511162840.375890-42-rppt@kernel.org
Signed-off-by: Mike Rapoport (Microsoft) <rppt@kernel.org>
Tested-by: Luiz Capitulino <luizcap@redhat.com>
Tested-by: Sarthak Sharma <sarthak.sharma@arm.com>
Cc: Baolin Wang <baolin.wang@linux.alibaba.com>
Cc: Barry Song <baohua@kernel.org>
Cc: David Hildenbrand <david@kernel.org>
Cc: Dev Jain <dev.jain@arm.com>
Cc: Donet Tom <donettom@linux.ibm.com>
Cc: Jason Gunthorpe <jgg@ziepe.ca>
Cc: John Hubbard <jhubbard@nvidia.com>
Cc: Lance Yang <lance.yang@linux.dev>
Cc: Leon Romanovsky <leon@kernel.org>
Cc: Liam Howlett <liam@infradead.org>
Cc: Li Wang <li.wang@linux.dev>
Cc: Lorenzo Stoakes <ljs@kernel.org>
Cc: Mark Brown <broonie@kernel.org>
Cc: Michal Hocko <mhocko@suse.com>
Cc: Nico Pache <npache@redhat.com>
Cc: Peter Xu <peterx@redhat.com>
Cc: Ryan Roberts <ryan.roberts@arm.com>
Cc: Shuah Khan <shuah@kernel.org>
Cc: Suren Baghdasaryan <surenb@google.com>
Cc: Vlastimil Babka <vbabka@kernel.org>
Cc: Zi Yan <ziy@nvidia.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
[ Backport-notes: this is a partial backport containing only the aligning
of 'length' to the hugepage size. The hugepage_settings.h include line and
the hugetlb_setup_default() call are omitted. Without this fix, the
uffd_register() call always fails on arm64 with 64K base pages and 512 MiB
default HugeTLB page size causing the test to fail with the error below as
'length' is 10 MiB and not aligned to the HugeTLB page size.
# -------------------------
# running ./hugepage-mremap
# -------------------------
# TAP version 13
# 1..1
# # Map haddr: Returned address is 0x7eaa40000000
# # Map daddr: Returned address is 0x7daa40000000
# # Map vaddr: Returned address is 0x7faa40000000
# Bail out! ioctl-UFFDIO_REGISTER: Invalid argument
# # Planned tests != run tests (1 != 0)
# # Totals: pass:0 fail:0 xfail:0 xpass:0 skip:0 error:0
# [FAIL]
not ok 1 hugepage-mremap # exit=1
# NOTE: These hugetlb tests provide minimal coverage. Use
# https://github.com/libhugetlbfs/libhugetlbfs.git for
# hugetlb regression testing.
# SKIP ./uffd-wp-mremap
]
Signed-off-by: Luiz Capitulino <luizcap@redhat.com>
"""
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2026-09-29 14:18 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-09-28 13:09 [PATCH v6.18.y v2] selftests/mm: hugepage-mremap: fix mapping alignment Luiz Capitulino
2026-09-28 22:39 ` Sasha Levin
2026-09-29 14:18 ` Luiz Capitulino
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®