* [PATCH v6.12.y] selftests/mm: hugepage-mremap: fix mapping alignment
@ 2026-09-28 13:11 Luiz Capitulino
2026-09-28 22:39 ` Sasha Levin
0 siblings, 1 reply; 2+ messages in thread
From: Luiz Capitulino @ 2026-09-28 13:11 UTC (permalink / raw)
To: sashal, stable; +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 3070484f9ed0..42dd4eeba52b 100644
--- a/tools/testing/selftests/mm/hugepage-mremap.c
+++ b/tools/testing/selftests/mm/hugepage-mremap.c
@@ -87,6 +87,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;
@@ -104,7 +105,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] 2+ messages in thread
* Re: [PATCH v6.12.y] selftests/mm: hugepage-mremap: fix mapping alignment
2026-09-28 13:11 [PATCH v6.12.y] selftests/mm: hugepage-mremap: fix mapping alignment Luiz Capitulino
@ 2026-09-28 22:39 ` Sasha Levin
0 siblings, 0 replies; 2+ 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 v2 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.18.y v2.
--
Thanks,
Sasha
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2026-09-28 22:39 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-09-28 13:11 [PATCH v6.12.y] selftests/mm: hugepage-mremap: fix mapping alignment Luiz Capitulino
2026-09-28 22:39 ` Sasha Levin
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®