1From 751d6062f18faffca34fe9e98ca4a139d6c468d7 Mon Sep 17 00:00:00 2001 2From: Edward Liaw <[email protected]> 3Date: Tue, 19 Apr 2022 23:09:36 +0000 4Subject: [PATCH 11/20] run_vmtests: Disable tests with unmet dependencies 5 6The hugepage-mmap, hugepage-shm, map_hugetlb, compaction, and 7userfaultfd tests cannot be run due to unmet dependencies. 8 9(cherry picked from commit 946413011af990b7220e73af57c0bc2196275524) 10Bug: 67017050 11Test: make -j vts 12--- 13 tools/testing/selftests/vm/run_vmtests.sh | 298 +++++++++++----------- 14 1 file changed, 149 insertions(+), 149 deletions(-) 15 16diff --git a/tools/testing/selftests/vm/run_vmtests.sh b/tools/testing/selftests/vm/run_vmtests.sh 17index e780e76c26b8..b936dfe44822 100755 18--- a/tools/testing/selftests/vm/run_vmtests.sh 19+++ b/tools/testing/selftests/vm/run_vmtests.sh 20@@ -8,62 +8,62 @@ ksft_skip=4 21 mnt=./huge 22 exitcode=0 23 24-#get huge pagesize and freepages from /proc/meminfo 25-while read -r name size unit; do 26- if [ "$name" = "HugePages_Free:" ]; then 27- freepgs="$size" 28- fi 29- if [ "$name" = "Hugepagesize:" ]; then 30- hpgsize_KB="$size" 31- fi 32-done < /proc/meminfo 33- 34-# Simple hugetlbfs tests have a hardcoded minimum requirement of 35-# huge pages totaling 256MB (262144KB) in size. The userfaultfd 36-# hugetlb test requires a minimum of 2 * nr_cpus huge pages. Take 37-# both of these requirements into account and attempt to increase 38-# number of huge pages available. 39-nr_cpus=$(nproc) 40-hpgsize_MB=$((hpgsize_KB / 1024)) 41-half_ufd_size_MB=$((((nr_cpus * hpgsize_MB + 127) / 128) * 128)) 42-needmem_KB=$((half_ufd_size_MB * 2 * 1024)) 43- 44-#set proper nr_hugepages 45-if [ -n "$freepgs" ] && [ -n "$hpgsize_KB" ]; then 46- nr_hugepgs=$(cat /proc/sys/vm/nr_hugepages) 47- needpgs=$((needmem_KB / hpgsize_KB)) 48- tries=2 49- while [ "$tries" -gt 0 ] && [ "$freepgs" -lt "$needpgs" ]; do 50- lackpgs=$((needpgs - freepgs)) 51- echo 3 > /proc/sys/vm/drop_caches 52- if ! echo $((lackpgs + nr_hugepgs)) > /proc/sys/vm/nr_hugepages; then 53- echo "Please run this test as root" 54- exit $ksft_skip 55- fi 56- while read -r name size unit; do 57- if [ "$name" = "HugePages_Free:" ]; then 58- freepgs=$size 59- fi 60- done < /proc/meminfo 61- tries=$((tries - 1)) 62- done 63- if [ "$freepgs" -lt "$needpgs" ]; then 64- printf "Not enough huge pages available (%d < %d)\n" \ 65- "$freepgs" "$needpgs" 66- exit 1 67- fi 68-else 69- echo "no hugetlbfs support in kernel?" 70- exit 1 71-fi 72- 73-#filter 64bit architectures 74-ARCH64STR="arm64 ia64 mips64 parisc64 ppc64 ppc64le riscv64 s390x sh64 sparc64 x86_64" 75-if [ -z "$ARCH" ]; then 76- ARCH=$(uname -m 2>/dev/null | sed -e 's/aarch64.*/arm64/') 77-fi 78-VADDR64=0 79-echo "$ARCH64STR" | grep "$ARCH" && VADDR64=1 80+##get huge pagesize and freepages from /proc/meminfo 81+#while read -r name size unit; do 82+# if [ "$name" = "HugePages_Free:" ]; then 83+# freepgs="$size" 84+# fi 85+# if [ "$name" = "Hugepagesize:" ]; then 86+# hpgsize_KB="$size" 87+# fi 88+#done < /proc/meminfo 89+# 90+## Simple hugetlbfs tests have a hardcoded minimum requirement of 91+## huge pages totaling 256MB (262144KB) in size. The userfaultfd 92+## hugetlb test requires a minimum of 2 * nr_cpus huge pages. Take 93+## both of these requirements into account and attempt to increase 94+## number of huge pages available. 95+#nr_cpus=$(nproc) 96+#hpgsize_MB=$((hpgsize_KB / 1024)) 97+#half_ufd_size_MB=$((((nr_cpus * hpgsize_MB + 127) / 128) * 128)) 98+#needmem_KB=$((half_ufd_size_MB * 2 * 1024)) 99+# 100+##set proper nr_hugepages 101+#if [ -n "$freepgs" ] && [ -n "$hpgsize_KB" ]; then 102+# nr_hugepgs=$(cat /proc/sys/vm/nr_hugepages) 103+# needpgs=$((needmem_KB / hpgsize_KB)) 104+# tries=2 105+# while [ "$tries" -gt 0 ] && [ "$freepgs" -lt "$needpgs" ]; do 106+# lackpgs=$((needpgs - freepgs)) 107+# echo 3 > /proc/sys/vm/drop_caches 108+# if ! echo $((lackpgs + nr_hugepgs)) > /proc/sys/vm/nr_hugepages; then 109+# echo "Please run this test as root" 110+# exit $ksft_skip 111+# fi 112+# while read -r name size unit; do 113+# if [ "$name" = "HugePages_Free:" ]; then 114+# freepgs=$size 115+# fi 116+# done < /proc/meminfo 117+# tries=$((tries - 1)) 118+# done 119+# if [ "$freepgs" -lt "$needpgs" ]; then 120+# printf "Not enough huge pages available (%d < %d)\n" \ 121+# "$freepgs" "$needpgs" 122+# exit 1 123+# fi 124+#else 125+# echo "no hugetlbfs support in kernel?" 126+# exit 1 127+#fi 128+# 129+##filter 64bit architectures 130+#ARCH64STR="arm64 ia64 mips64 parisc64 ppc64 ppc64le riscv64 s390x sh64 sparc64 x86_64" 131+#if [ -z "$ARCH" ]; then 132+# ARCH=$(uname -m 2>/dev/null | sed -e 's/aarch64.*/arm64/') 133+#fi 134+#VADDR64=0 135+#echo "$ARCH64STR" | grep "$ARCH" && VADDR64=1 136 137 # Usage: run_test [test binary] [arbitrary test arguments...] 138 run_test() { 139@@ -84,63 +84,63 @@ run_test() { 140 fi 141 } 142 143-mkdir "$mnt" 144-mount -t hugetlbfs none "$mnt" 145- 146-run_test ./hugepage-mmap 147- 148-shmmax=$(cat /proc/sys/kernel/shmmax) 149-shmall=$(cat /proc/sys/kernel/shmall) 150-echo 268435456 > /proc/sys/kernel/shmmax 151-echo 4194304 > /proc/sys/kernel/shmall 152-run_test ./hugepage-shm 153-echo "$shmmax" > /proc/sys/kernel/shmmax 154-echo "$shmall" > /proc/sys/kernel/shmall 155- 156-run_test ./map_hugetlb 157- 158-run_test ./hugepage-mremap "$mnt"/huge_mremap 159-rm -f "$mnt"/huge_mremap 160- 161-run_test ./hugepage-vmemmap 162- 163-run_test ./hugetlb-madvise "$mnt"/madvise-test 164-rm -f "$mnt"/madvise-test 165- 166-echo "NOTE: The above hugetlb tests provide minimal coverage. Use" 167-echo " https://github.com/libhugetlbfs/libhugetlbfs.git for" 168-echo " hugetlb regression testing." 169- 170-run_test ./map_fixed_noreplace 171- 172-# get_user_pages_fast() benchmark 173-run_test ./gup_test -u 174-# pin_user_pages_fast() benchmark 175-run_test ./gup_test -a 176-# Dump pages 0, 19, and 4096, using pin_user_pages: 177-run_test ./gup_test -ct -F 0x1 0 19 0x1000 178- 179-uffd_mods=("" ":dev") 180-for mod in "${uffd_mods[@]}"; do 181- run_test ./userfaultfd anon${mod} 20 16 182- # Hugetlb tests require source and destination huge pages. Pass in half 183- # the size ($half_ufd_size_MB), which is used for *each*. 184- run_test ./userfaultfd hugetlb${mod} "$half_ufd_size_MB" 32 185- run_test ./userfaultfd hugetlb_shared${mod} "$half_ufd_size_MB" 32 "$mnt"/uffd-test 186- rm -f "$mnt"/uffd-test 187- run_test ./userfaultfd shmem${mod} 20 16 188-done 189- 190-#cleanup 191-umount "$mnt" 192-rm -rf "$mnt" 193-echo "$nr_hugepgs" > /proc/sys/vm/nr_hugepages 194- 195-run_test ./compaction_test 196+#mkdir "$mnt" 197+#mount -t hugetlbfs none "$mnt" 198+# 199+#run_test ./hugepage-mmap 200+# 201+#shmmax=$(cat /proc/sys/kernel/shmmax) 202+#shmall=$(cat /proc/sys/kernel/shmall) 203+#echo 268435456 > /proc/sys/kernel/shmmax 204+#echo 4194304 > /proc/sys/kernel/shmall 205+#run_test ./hugepage-shm 206+#echo "$shmmax" > /proc/sys/kernel/shmmax 207+#echo "$shmall" > /proc/sys/kernel/shmall 208+# 209+#run_test ./map_hugetlb 210+# 211+#run_test ./hugepage-mremap "$mnt"/huge_mremap 212+#rm -f "$mnt"/huge_mremap 213+# 214+#run_test ./hugepage-vmemmap 215+# 216+#run_test ./hugetlb-madvise "$mnt"/madvise-test 217+#rm -f "$mnt"/madvise-test 218+# 219+#echo "NOTE: The above hugetlb tests provide minimal coverage. Use" 220+#echo " https://github.com/libhugetlbfs/libhugetlbfs.git for" 221+#echo " hugetlb regression testing." 222+# 223+#run_test ./map_fixed_noreplace 224+# 225+## get_user_pages_fast() benchmark 226+#run_test ./gup_test -u 227+## pin_user_pages_fast() benchmark 228+#run_test ./gup_test -a 229+## Dump pages 0, 19, and 4096, using pin_user_pages: 230+#run_test ./gup_test -ct -F 0x1 0 19 0x1000 231+# 232+#uffd_mods=("" ":dev") 233+#for mod in "${uffd_mods[@]}"; do 234+# run_test ./userfaultfd anon${mod} 20 16 235+# # Hugetlb tests require source and destination huge pages. Pass in half 236+# # the size ($half_ufd_size_MB), which is used for *each*. 237+# run_test ./userfaultfd hugetlb${mod} "$half_ufd_size_MB" 32 238+# run_test ./userfaultfd hugetlb_shared${mod} "$half_ufd_size_MB" 32 "$mnt"/uffd-test 239+# rm -f "$mnt"/uffd-test 240+# run_test ./userfaultfd shmem${mod} 20 16 241+#done 242+# 243+##cleanup 244+#umount "$mnt" 245+#rm -rf "$mnt" 246+#echo "$nr_hugepgs" > /proc/sys/vm/nr_hugepages 247+# 248+#run_test ./compaction_test 249 250 run_test sudo -u nobody ./on-fault-limit 251 252-run_test ./map_populate 253+#run_test ./map_populate 254 255 run_test ./mlock-random-test 256 257@@ -152,49 +152,49 @@ run_test ./mremap_test 258 259 run_test ./thuge-gen 260 261-if [ $VADDR64 -ne 0 ]; then 262- run_test ./virtual_address_range 263- 264- # virtual address 128TB switch test 265- run_test ./va_128TBswitch.sh 266-fi # VADDR64 267+#if [ $VADDR64 -ne 0 ]; then 268+# run_test ./virtual_address_range 269+# 270+# # virtual address 128TB switch test 271+# run_test ./va_128TBswitch.sh 272+#fi # VADDR64 273 274 # vmalloc stability smoke test 275-run_test ./test_vmalloc.sh smoke 276+#run_test ./test_vmalloc.sh smoke 277 278 run_test ./mremap_dontunmap 279 280-run_test ./test_hmm.sh smoke 281- 282-# MADV_POPULATE_READ and MADV_POPULATE_WRITE tests 283-run_test ./madv_populate 284- 285-run_test ./memfd_secret 286- 287-# KSM MADV_MERGEABLE test with 10 identical pages 288-run_test ./ksm_tests -M -p 10 289-# KSM unmerge test 290-run_test ./ksm_tests -U 291-# KSM test with 10 zero pages and use_zero_pages = 0 292-run_test ./ksm_tests -Z -p 10 -z 0 293-# KSM test with 10 zero pages and use_zero_pages = 1 294-run_test ./ksm_tests -Z -p 10 -z 1 295-# KSM test with 2 NUMA nodes and merge_across_nodes = 1 296-run_test ./ksm_tests -N -m 1 297-# KSM test with 2 NUMA nodes and merge_across_nodes = 0 298-run_test ./ksm_tests -N -m 0 299- 300-# protection_keys tests 301-if [ -x ./protection_keys_32 ] 302-then 303- run_test ./protection_keys_32 304-fi 305- 306-if [ -x ./protection_keys_64 ] 307-then 308- run_test ./protection_keys_64 309-fi 310- 311-run_test ./soft-dirty 312+#run_test ./test_hmm.sh smoke 313+ 314+## MADV_POPULATE_READ and MADV_POPULATE_WRITE tests 315+#run_test ./madv_populate 316+# 317+#run_test ./memfd_secret 318+ 319+## KSM MADV_MERGEABLE test with 10 identical pages 320+#run_test ./ksm_tests -M -p 10 321+## KSM unmerge test 322+#run_test ./ksm_tests -U 323+## KSM test with 10 zero pages and use_zero_pages = 0 324+#run_test ./ksm_tests -Z -p 10 -z 0 325+## KSM test with 10 zero pages and use_zero_pages = 1 326+#run_test ./ksm_tests -Z -p 10 -z 1 327+## KSM test with 2 NUMA nodes and merge_across_nodes = 1 328+#run_test ./ksm_tests -N -m 1 329+## KSM test with 2 NUMA nodes and merge_across_nodes = 0 330+#run_test ./ksm_tests -N -m 0 331+ 332+## protection_keys tests 333+#if [ -x ./protection_keys_32 ] 334+#then 335+# run_test ./protection_keys_32 336+#fi 337+# 338+#if [ -x ./protection_keys_64 ] 339+#then 340+# run_test ./protection_keys_64 341+#fi 342+# 343+#run_test ./soft-dirty 344 345 exit $exitcode 346-- 3472.42.0.609.gbb76f46606-goog 348 349