linux/tools/testing/selftests/mm
Li Wang 983e760bcd selftest/mm: va_high_addr_switch: add ppc64 support check
Add PPC64 Radix MMU support to the va_high_addr_switch.sh by introducing
check_supported_ppc64().  The function verifies:

  - 5-level paging (PGTABLE_LEVELS >= 5) enable in kernel config
  - Radix MMU (required for PPC64 5-level translation)
  - HugePages availability (needed for some tests)

If any check fails, the test is skipped (ksft_skip).  This ensures
compatibility with Power9/Power10 systems running in Radix MMU mode.

Avoid failures on 4-level paging system:

  # mmap(NULL, MAP_HUGETLB): 0xffffffffffffffff - FAILED
  # mmap(LOW_ADDR, MAP_HUGETLB): 0xffffffffffffffff - FAILED
  # mmap(HIGH_ADDR, MAP_HUGETLB): 0xffffffffffffffff - FAILED
  # mmap(HIGH_ADDR, MAP_HUGETLB) again: 0xffffffffffffffff - FAILED
  # mmap(HIGH_ADDR, MAP_FIXED | MAP_HUGETLB): 0xffffffffffffffff - FAILED
  # mmap(-1, MAP_HUGETLB): 0xffffffffffffffff - FAILED
  # mmap(-1, MAP_HUGETLB) again: 0xffffffffffffffff - FAILED
  # mmap(ADDR_SWITCH_HINT - PAGE_SIZE, 2*HUGETLB_SIZE, MAP_HUGETLB): 0xffffffffffffffff - FAILED
  # mmap(ADDR_SWITCH_HINT , 2*HUGETLB_SIZE, MAP_FIXED | MAP_HUGETLB): 0xffffffffffffffff - FAILED

Link: https://lkml.kernel.org/r/20250327114813.25980-1-liwang@redhat.com
Signed-off-by: Li Wang <liwang@redhat.com>
Cc: Anshuman Khandual <anshuman.khandual@arm.com>
Cc: Dev Jain <dev.jain@arm.com>
Cc: Kirill A. Shuemov <kirill.shutemov@linux.intel.com>
Cc: Shuah Khan <shuah@kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
2025-04-01 15:17:11 -07:00
..
page_frag mm: page_frag: fix a compile error when kernel is not compiled 2024-11-19 12:20:40 +01:00
.gitignore selftests/mm: rename guard-pages to guard-regions 2025-03-16 22:06:15 -07:00
Makefile selftests/mm: rename guard-pages to guard-regions 2025-03-16 22:06:15 -07:00
charge_reserved_hugetlb.sh selftests/mm: fix charge_reserved_hugetlb.sh test 2024-09-03 21:15:46 -07:00
check_config.sh selftests/mm: give scripts execute permission 2023-07-14 09:24:31 -07:00
compaction_test.c selftests/mm: compaction_test: fix off by one in check_compaction() 2024-08-15 22:16:15 -07:00
config selftests/mm: virtual_address_range: unmap chunks after validation 2025-01-25 20:22:44 -08:00
cow.c selftests/mm/cow: fix the incorrect error handling 2025-03-17 22:07:06 -07:00
droppable.c mm: add MAP_DROPPABLE for designating always lazily freeable mappings 2024-07-19 20:22:12 +02:00
guard-regions.c - The 6 patch series "Enable strict percpu address space checks" from 2025-04-01 09:29:18 -07:00
gup_longterm.c selftests/mm: add commentary about 9pfs bugs 2025-03-21 22:03:14 -07:00
gup_test.c selftests/mm: fix build warnings on ppc64 2024-05-24 11:55:06 -07:00
hmm-tests.c selftests/mm: fix incorrect buffer->mirror size in hmm2 double_map test 2024-10-09 12:47:19 -07:00
hugepage-mmap.c selftests/mm: remove unnecessary ia64 code and comment 2024-09-03 21:15:38 -07:00
hugepage-mremap.c Revert "selftests/mm: remove local __NR_* definitions" 2025-03-05 21:36:12 -08:00
hugepage-shm.c selftests/mm: remove unnecessary ia64 code and comment 2024-09-03 21:15:38 -07:00
hugepage-vmemmap.c selftests/mm: remove unnecessary ia64 code and comment 2024-09-03 21:15:38 -07:00
hugetlb-madvise.c selftests/mm: skip the hugetlb-madvise tests on unmet hugepage requirements 2024-03-12 13:07:18 -07:00
hugetlb-read-hwpoison.c selftests/mm: add tests for HWPOISON hugetlbfs read 2023-08-18 10:12:27 -07:00
hugetlb-soft-offline.c selftest/mm: test enable_soft_offline behaviors 2024-07-04 18:06:00 -07:00
hugetlb_dio.c selftest: hugetlb_dio: fix test naming 2024-12-05 19:54:44 -08:00
hugetlb_fault_after_madv.c selftests/mm: hugetlb_fault_after_madv: improve test output 2024-11-05 16:56:25 -08:00
hugetlb_madv_vs_map.c selftests/mm: hugetlb_madv_vs_map: avoid test skipping by querying hugepage size at runtime 2024-05-11 15:41:37 -07:00
hugetlb_reparenting_test.sh selftests/mm: save and restore nr_hugepages value 2024-02-22 15:38:55 -08:00
khugepaged.c selftests: mm: fix the incorrect usage() info of khugepaged 2024-10-17 00:28:11 -07:00
ksm_functional_tests.c Revert "selftests/mm: remove local __NR_* definitions" 2025-03-05 21:36:12 -08:00
ksm_tests.c selftests/mm: fix -Wmaybe-uninitialized warnings 2025-01-13 22:40:53 -08:00
madv_populate.c selftests/mm: ksft_exit functions do not return 2024-05-06 13:57:20 -06:00
map_fixed_noreplace.c selftests: mm: make map_fixed_noreplace test names stable 2024-06-15 10:43:07 -07:00
map_hugetlb.c selftests/mm: remove unnecessary ia64 code and comment 2024-09-03 21:15:38 -07:00
map_populate.c selftests/mm: add commentary about 9pfs bugs 2025-03-21 22:03:14 -07:00
mdwe_test.c Revert "selftests/harness: remove use of LINE_MAX" 2024-05-19 14:36:20 -07:00
memfd_secret.c Revert "selftests/mm: remove local __NR_* definitions" 2025-03-05 21:36:12 -08:00
migration.c selftests/mm: add new test cases to the migration test 2025-01-25 20:22:21 -08:00
mkdirty.c Revert "selftests/mm: remove local __NR_* definitions" 2025-03-05 21:36:12 -08:00
mlock-random-test.c selftests/mm/mlock: print error on failure 2025-03-16 22:06:40 -07:00
mlock2-tests.c selftests/mm: parse VMA range in one go 2024-04-25 20:56:07 -07:00
mlock2.h selftests/mm/mlock: print error on failure 2025-03-16 22:06:40 -07:00
mrelease_test.c selftests/mm: mrelease_test: conform test to TAP format output 2024-02-22 10:24:49 -08:00
mremap_dontunmap.c selftests/mm: mremap_dontunmap: conform test to TAP format output 2024-02-22 10:24:49 -08:00
mremap_test.c selftests/mm: fix -Wmaybe-uninitialized warnings 2025-01-13 22:40:53 -08:00
mseal_helpers.h selftests/mm: mseal, self_elf: rename TEST_END_CHECK to REPORT_TEST_PASS 2024-07-03 19:30:07 -07:00
mseal_test.c selftests/mm: Use PKEY_UNRESTRICTED macro 2025-02-17 18:16:36 +00:00
on-fault-limit.c selftests/mm: run_vmtests: remove sudo and conform to tap 2024-02-22 15:38:55 -08:00
pagemap_ioctl.c selftests/mm: pagemap_ioctl: Fix types mismatches shown by compiler options 2025-01-13 22:40:52 -08:00
pkey-arm64.h selftests/mm: rename pkey register macro 2025-01-13 22:40:56 -08:00
pkey-helpers.h selftests/mm: Use PKEY_UNRESTRICTED macro 2025-02-17 18:16:36 +00:00
pkey-powerpc.h selftests/mm: ensure pkey-*.h define inline functions only 2025-01-13 22:40:55 -08:00
pkey-x86.h selftests/mm: ensure pkey-*.h define inline functions only 2025-01-13 22:40:55 -08:00
pkey_sighandler_tests.c selftests/mm: Use PKEY_UNRESTRICTED macro 2025-02-17 18:16:36 +00:00
pkey_util.c selftests/mm: use sys_pkey helpers consistently 2025-01-13 22:40:56 -08:00
protection_keys.c arm64 updates for 6.15: 2025-03-25 13:16:16 -07:00
run_vmtests.sh selftests/mm: skip mlock tests if nobody user can't read it 2025-03-16 22:06:40 -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: fix -Wmaybe-uninitialized warnings 2025-01-13 22:40:53 -08:00
split_huge_page_test.c selftests/mm: speed up split_huge_page_test 2025-03-21 22:03:16 -07:00
test_hmm.sh selftests/mm: give scripts execute permission 2023-07-14 09:24:31 -07:00
test_page_frag.sh mm: page_frag: add a test module for page_frag 2024-11-11 10:56:26 -08:00
test_vmalloc.sh selftests/mm: give scripts execute permission 2023-07-14 09:24:31 -07:00
thp_settings.c selftests/mm: thp_settings: remove const from return type 2025-01-13 22:40:52 -08:00
thp_settings.h selftests/mm: thp_settings: remove const from return type 2025-01-13 22:40:52 -08:00
thuge-gen.c selftests/mm: fix thuge-gen test name uniqueness 2025-03-16 22:06:03 -07:00
transhuge-stress.c selftests/mm: transhuge-stress: conform to TAP format output 2024-02-22 10:24:49 -08:00
uffd-common.c selftests/mm/uffd: rename nr_cpus -> nr_parallel 2025-03-16 22:06:38 -07:00
uffd-common.h selftests/mm/uffd: rename nr_cpus -> nr_parallel 2025-03-16 22:06:38 -07:00
uffd-stress.c selftests/mm: don't fail uffd-stress if too many CPUs 2025-03-16 22:06:38 -07:00
uffd-unit-tests.c selftests/mm: uffd-unit-tests support for hugepages > 2M 2025-03-21 22:03:15 -07:00
uffd-wp-mremap.c selftests/mm: skip uffd-wp-mremap if userfaultfd not available 2025-03-16 22:06:38 -07:00
va_high_addr_switch.c selftests/mm: skip test for non-LPA2 and non-LVA systems 2024-07-26 14:33:10 -07:00
va_high_addr_switch.sh selftest/mm: va_high_addr_switch: add ppc64 support check 2025-04-01 15:17:11 -07:00
virtual_address_range.c selftests/mm: virtual_address_range: avoid reading from VM_IO mappings 2025-01-25 20:22:44 -08:00
vm_util.c selftests/mm: virtual_address_range: avoid reading from VM_IO mappings 2025-01-25 20:22:44 -08:00
vm_util.h selftests/mm: add commentary about 9pfs bugs 2025-03-21 22:03:14 -07:00
write_hugetlb_memory.sh selftests/mm: switch to bash from sh 2024-01-25 23:52:20 -08:00
write_to_hugetlbfs.c selftests/mm: fix strncpy() length 2025-01-13 22:40:54 -08:00