linux/tools/testing/selftests/mm
Donet Tom e6cdfb699e selftests: mm: hugepage-vmemmap fails on 64K page size systems
commit 00bcfcd47a upstream.

The kernel sefltest mm/hugepage-vmemmap fails on architectures which has
different page size other than 4K.  In hugepage-vmemmap page size used is
4k so the pfn calculation will go wrong on systems which has different
page size .The length of MAP_HUGETLB memory must be hugepage aligned but
in hugepage-vmemmap map length is 2M so this will not get aligned if the
system has differnet hugepage size.

Added  psize() to get the page size and default_huge_page_size() to
get the default hugepage size at run time, hugepage-vmemmap test pass
on powerpc with 64K page size and x86 with 4K page size.

Result on powerpc without patch (page size 64K)
*# ./hugepage-vmemmap
Returned address is 0x7effff000000 whose pfn is 0
Head page flags (100000000) is invalid
check_page_flags: Invalid argument
*#

Result on powerpc with patch (page size 64K)
*# ./hugepage-vmemmap
Returned address is 0x7effff000000 whose pfn is 600
*#

Result on x86 with patch (page size 4K)
*# ./hugepage-vmemmap
Returned address is 0x7fc7c2c00000 whose pfn is 1dac00
*#

Link: https://lkml.kernel.org/r/3b3a3ae37ba21218481c482a872bbf7526031600.1704865754.git.donettom@linux.vnet.ibm.com
Fixes: b147c89cd4 ("selftests: vm: add a hugetlb test case")
Signed-off-by: Donet Tom <donettom@linux.vnet.ibm.com>
Reported-by: Geetika Moolchandani <geetika@linux.ibm.com>
Tested-by: Geetika Moolchandani <geetika@linux.ibm.com>
Acked-by: Muchun Song <muchun.song@linux.dev>
Cc: <stable@vger.kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2024-01-31 16:18:56 -08:00
..
.gitignore selftests/mm: add tests for HWPOISON hugetlbfs read 2023-08-18 10:12:27 -07:00
charge_reserved_hugetlb.sh selftests/mm: fix awk usage in charge_reserved_hugetlb.sh and hugetlb_reparenting_test.sh that may cause error 2023-09-29 17:20:48 -07:00
check_config.sh selftests/mm: give scripts execute permission 2023-07-14 09:24:31 -07:00
compaction_test.c
config
cow.c selftests/mm: cow: print ksft header before printing anything else 2023-12-20 17:01:55 +01:00
gup_longterm.c selftests/mm: gup_longterm: add liburing tests 2023-06-09 16:25:38 -07:00
gup_test.c selftests/mm: merge util.h into vm_util.h 2023-04-18 16:30:02 -07:00
hmm-tests.c selftests/mm: FOLL_LONGTERM need to be updated to 0x100 2023-08-21 13:07:21 -07:00
hugepage-mmap.c
hugepage-mremap.c selftests/mm: uffd_[un]register() 2023-04-18 16:30:05 -07:00
hugepage-shm.c selftests: mm: remove duplicate unneeded defines 2023-06-19 16:19:25 -07:00
hugepage-vmemmap.c selftests: mm: hugepage-vmemmap fails on 64K page size systems 2024-01-31 16:18:56 -08:00
hugetlb_reparenting_test.sh selftests/mm: fix awk usage in charge_reserved_hugetlb.sh and hugetlb_reparenting_test.sh that may cause error 2023-09-29 17:20:48 -07:00
hugetlb-madvise.c selftests/mm: fix unused variable warnings in hugetlb-madvise.c, migration.c 2023-06-19 16:19:01 -07:00
hugetlb-read-hwpoison.c selftests/mm: add tests for HWPOISON hugetlbfs read 2023-08-18 10:12:27 -07:00
khugepaged.c selftests: mm: remove duplicate unneeded defines 2023-06-19 16:19:25 -07:00
ksm_functional_tests.c selftest/mm: ksm_functional_tests: Add PROT_NONE test 2023-08-21 14:28:42 -07:00
ksm_tests.c selftests: mm: ksm: fix incorrect evaluation of parameter 2023-08-04 13:03:41 -07:00
madv_populate.c selftests/mm: skip soft-dirty tests on arm64 2023-08-18 10:12:42 -07:00
Makefile selftests/mm: run all tests from run_vmtests.sh 2023-08-18 10:12:43 -07:00
map_fixed_noreplace.c selftests: mm: remove duplicate unneeded defines 2023-06-19 16:19:25 -07:00
map_hugetlb.c selftests: mm: remove duplicate unneeded defines 2023-06-19 16:19:25 -07:00
map_populate.c selftests/mm: fix WARNING comparing pointer to 0 2023-08-24 16:20:27 -07:00
mdwe_test.c kselftest: vm: fix mdwe's mmap_FIXED test case 2023-11-20 11:59:20 +01:00
memfd_secret.c selftests: secretmem: floor the memory size to the multiple of page_size 2024-01-05 15:19:43 +01:00
migration.c selftests/mm: make migration test robust to failure 2023-08-18 10:12:43 -07:00
mkdirty.c selftests/mm: mkdirty: fix incorrect position of #endif 2023-07-17 12:53:22 -07:00
mlock-random-test.c selftests: mm: remove duplicate unneeded defines 2023-06-19 16:19:25 -07:00
mlock2-tests.c selftests/mm: fix "warning: expression which evaluates to zero..." in mlock2-tests.c 2023-06-19 16:19:01 -07:00
mlock2.h selftests: mm: remove duplicate unneeded defines 2023-06-19 16:19:25 -07:00
mrelease_test.c selftests/mm: enable mrelease_test for arm64 2023-08-18 10:12:42 -07:00
mremap_dontunmap.c selftests/mm: include mman header to access MREMAP_DONTUNMAP identifier 2023-10-18 12:12:41 -07:00
mremap_test.c
on-fault-limit.c selftests: mm: remove duplicate unneeded defines 2023-06-19 16:19:25 -07:00
pkey-helpers.h
pkey-powerpc.h selftests: mm: remove duplicate unneeded defines 2023-06-19 16:19:25 -07:00
pkey-x86.h selftests: mm: remove duplicate unneeded defines 2023-06-19 16:19:25 -07:00
protection_keys.c selftests: mm: remove duplicate unneeded defines 2023-06-19 16:19:25 -07:00
run_vmtests.sh selftests: mm: add KSM_MERGE_TIME tests 2023-08-21 13:37:31 -07:00
settings selftests/mm: run all tests from run_vmtests.sh 2023-08-18 10:12:43 -07:00
soft-dirty.c selftests/mm: reuse read_pmd_pagesize() in COW selftest 2023-04-18 16:30:00 -07:00
split_huge_page_test.c selftests/mm: reuse read_pmd_pagesize() in COW selftest 2023-04-18 16:30:00 -07:00
test_hmm.sh selftests/mm: give scripts execute permission 2023-07-14 09:24:31 -07:00
test_vmalloc.sh selftests/mm: give scripts execute permission 2023-07-14 09:24:31 -07:00
thuge-gen.c selftests/mm: fix thuge-gen test bugs 2023-08-18 10:12:42 -07:00
transhuge-stress.c selftests/mm: optionally pass duration to transhuge-stress 2023-08-18 10:12:43 -07:00
uffd-common.c selftests/mm: refactor uffd_poll_thread to allow custom fault handlers 2023-08-18 10:12:17 -07:00
uffd-common.h selftests/mm: refactor uffd_poll_thread to allow custom fault handlers 2023-08-18 10:12:17 -07:00
uffd-stress.c selftests/mm: fix uffd-stress help information 2023-08-21 13:37:58 -07:00
uffd-unit-tests.c selftests/mm: add uffd unit test for UFFDIO_POISON 2023-08-18 10:12:18 -07:00
va_high_addr_switch.c selftests/mm: va_high_addr_switch should skip unsupported arm64 configs 2023-08-18 10:12:43 -07:00
va_high_addr_switch.sh selftests/mm: give scripts execute permission 2023-07-14 09:24:31 -07:00
virtual_address_range.c selftests/mm: change NR_CHUNKS_HIGH for aarch64 2023-04-05 19:42:59 -07:00
vm_util.c selftests/mm: move certain uffd*() routines from vm_util.c to uffd-common.c 2023-06-19 16:19:02 -07:00
vm_util.h selftests: mm: remove duplicate unneeded defines 2023-06-19 16:19:25 -07:00
write_hugetlb_memory.sh selftests/mm: give scripts execute permission 2023-07-14 09:24:31 -07:00
write_to_hugetlbfs.c