1The hugepage-mmap, hugepage-shm, map_hugetlb, compaction, and 2userfaultfd tests cannot be run due to unmet dependencies. 3 4Bug: 67017050 5 6--- a/tools/testing/selftests/vm/run_vmtests 7+++ b/tools/testing/selftests/vm/run_vmtests 8@@ -8,161 +8,161 @@ 9 mnt=./huge 10 exitcode=0 11 12-#get huge pagesize and freepages from /proc/meminfo 13-while read name size unit; do 14- if [ "$name" = "HugePages_Free:" ]; then 15- freepgs=$size 16- fi 17- if [ "$name" = "Hugepagesize:" ]; then 18- hpgsize_KB=$size 19- fi 20-done < /proc/meminfo 21- 22-# Simple hugetlbfs tests have a hardcoded minimum requirement of 23-# huge pages totaling 256MB (262144KB) in size. The userfaultfd 24-# hugetlb test requires a minimum of 2 * nr_cpus huge pages. Take 25-# both of these requirements into account and attempt to increase 26-# number of huge pages available. 27-nr_cpus=$(nproc) 28-hpgsize_MB=$((hpgsize_KB / 1024)) 29-half_ufd_size_MB=$((((nr_cpus * hpgsize_MB + 127) / 128) * 128)) 30-needmem_KB=$((half_ufd_size_MB * 2 * 1024)) 31- 32-#set proper nr_hugepages 33-if [ -n "$freepgs" ] && [ -n "$hpgsize_KB" ]; then 34- nr_hugepgs=`cat /proc/sys/vm/nr_hugepages` 35- needpgs=$((needmem_KB / hpgsize_KB)) 36- tries=2 37- while [ $tries -gt 0 ] && [ $freepgs -lt $needpgs ]; do 38- lackpgs=$(( $needpgs - $freepgs )) 39- echo 3 > /proc/sys/vm/drop_caches 40- echo $(( $lackpgs + $nr_hugepgs )) > /proc/sys/vm/nr_hugepages 41- if [ $? -ne 0 ]; then 42- echo "Please run this test as root" 43- exit $ksft_skip 44- fi 45- while read name size unit; do 46- if [ "$name" = "HugePages_Free:" ]; then 47- freepgs=$size 48- fi 49- done < /proc/meminfo 50- tries=$((tries - 1)) 51- done 52- if [ $freepgs -lt $needpgs ]; then 53- printf "Not enough huge pages available (%d < %d)\n" \ 54- $freepgs $needpgs 55- exit 1 56- fi 57-else 58- echo "no hugetlbfs support in kernel?" 59- exit 1 60-fi 61- 62-#filter 64bit architectures 63-ARCH64STR="arm64 ia64 mips64 parisc64 ppc64 riscv64 s390x sh64 sparc64 x86_64" 64-if [ -z $ARCH ]; then 65- ARCH=`uname -m 2>/dev/null | sed -e 's/aarch64.*/arm64/'` 66-fi 67-VADDR64=0 68-echo "$ARCH64STR" | grep $ARCH && VADDR64=1 69- 70-mkdir $mnt 71-mount -t hugetlbfs none $mnt 72- 73-echo "---------------------" 74-echo "running hugepage-mmap" 75-echo "---------------------" 76-./hugepage-mmap 77-if [ $? -ne 0 ]; then 78- echo "[FAIL]" 79- exitcode=1 80-else 81- echo "[PASS]" 82-fi 83- 84-shmmax=`cat /proc/sys/kernel/shmmax` 85-shmall=`cat /proc/sys/kernel/shmall` 86-echo 268435456 > /proc/sys/kernel/shmmax 87-echo 4194304 > /proc/sys/kernel/shmall 88-echo "--------------------" 89-echo "running hugepage-shm" 90-echo "--------------------" 91-./hugepage-shm 92-if [ $? -ne 0 ]; then 93- echo "[FAIL]" 94- exitcode=1 95-else 96- echo "[PASS]" 97-fi 98-echo $shmmax > /proc/sys/kernel/shmmax 99-echo $shmall > /proc/sys/kernel/shmall 100- 101-echo "-------------------" 102-echo "running map_hugetlb" 103-echo "-------------------" 104-./map_hugetlb 105-if [ $? -ne 0 ]; then 106- echo "[FAIL]" 107- exitcode=1 108-else 109- echo "[PASS]" 110-fi 111- 112-echo "NOTE: The above hugetlb tests provide minimal coverage. Use" 113-echo " https://github.com/libhugetlbfs/libhugetlbfs.git for" 114-echo " hugetlb regression testing." 115- 116-echo "-------------------" 117-echo "running userfaultfd" 118-echo "-------------------" 119-./userfaultfd anon 128 32 120-if [ $? -ne 0 ]; then 121- echo "[FAIL]" 122- exitcode=1 123-else 124- echo "[PASS]" 125-fi 126- 127-echo "---------------------------" 128-echo "running userfaultfd_hugetlb" 129-echo "---------------------------" 130-# Test requires source and destination huge pages. Size of source 131-# (half_ufd_size_MB) is passed as argument to test. 132-./userfaultfd hugetlb $half_ufd_size_MB 32 $mnt/ufd_test_file 133-if [ $? -ne 0 ]; then 134- echo "[FAIL]" 135- exitcode=1 136-else 137- echo "[PASS]" 138-fi 139-rm -f $mnt/ufd_test_file 140- 141-echo "-------------------------" 142-echo "running userfaultfd_shmem" 143-echo "-------------------------" 144-./userfaultfd shmem 128 32 145-if [ $? -ne 0 ]; then 146- echo "[FAIL]" 147- exitcode=1 148-else 149- echo "[PASS]" 150-fi 151- 152-#cleanup 153-umount $mnt 154-rm -rf $mnt 155-echo $nr_hugepgs > /proc/sys/vm/nr_hugepages 156- 157-echo "-----------------------" 158-echo "running compaction_test" 159-echo "-----------------------" 160-./compaction_test 161-if [ $? -ne 0 ]; then 162- echo "[FAIL]" 163- exitcode=1 164-else 165- echo "[PASS]" 166-fi 167+##get huge pagesize and freepages from /proc/meminfo 168+#while read name size unit; do 169+# if [ "$name" = "HugePages_Free:" ]; then 170+# freepgs=$size 171+# fi 172+# if [ "$name" = "Hugepagesize:" ]; then 173+# hpgsize_KB=$size 174+# fi 175+#done < /proc/meminfo 176+# 177+## Simple hugetlbfs tests have a hardcoded minimum requirement of 178+## huge pages totaling 256MB (262144KB) in size. The userfaultfd 179+## hugetlb test requires a minimum of 2 * nr_cpus huge pages. Take 180+## both of these requirements into account and attempt to increase 181+## number of huge pages available. 182+#nr_cpus=$(nproc) 183+#hpgsize_MB=$((hpgsize_KB / 1024)) 184+#half_ufd_size_MB=$((((nr_cpus * hpgsize_MB + 127) / 128) * 128)) 185+#needmem_KB=$((half_ufd_size_MB * 2 * 1024)) 186+# 187+##set proper nr_hugepages 188+#if [ -n "$freepgs" ] && [ -n "$hpgsize_KB" ]; then 189+# nr_hugepgs=`cat /proc/sys/vm/nr_hugepages` 190+# needpgs=$((needmem_KB / hpgsize_KB)) 191+# tries=2 192+# while [ $tries -gt 0 ] && [ $freepgs -lt $needpgs ]; do 193+# lackpgs=$(( $needpgs - $freepgs )) 194+# echo 3 > /proc/sys/vm/drop_caches 195+# echo $(( $lackpgs + $nr_hugepgs )) > /proc/sys/vm/nr_hugepages 196+# if [ $? -ne 0 ]; then 197+# echo "Please run this test as root" 198+# exit $ksft_skip 199+# fi 200+# while read name size unit; do 201+# if [ "$name" = "HugePages_Free:" ]; then 202+# freepgs=$size 203+# fi 204+# done < /proc/meminfo 205+# tries=$((tries - 1)) 206+# done 207+# if [ $freepgs -lt $needpgs ]; then 208+# printf "Not enough huge pages available (%d < %d)\n" \ 209+# $freepgs $needpgs 210+# exit 1 211+# fi 212+#else 213+# echo "no hugetlbfs support in kernel?" 214+# exit 1 215+#fi 216+# 217+##filter 64bit architectures 218+#ARCH64STR="arm64 ia64 mips64 parisc64 ppc64 riscv64 s390x sh64 sparc64 x86_64" 219+#if [ -z $ARCH ]; then 220+# ARCH=`uname -m 2>/dev/null | sed -e 's/aarch64.*/arm64/'` 221+#fi 222+#VADDR64=0 223+#echo "$ARCH64STR" | grep $ARCH && VADDR64=1 224+# 225+#mkdir $mnt 226+#mount -t hugetlbfs none $mnt 227+# 228+#echo "---------------------" 229+#echo "running hugepage-mmap" 230+#echo "---------------------" 231+#./hugepage-mmap 232+#if [ $? -ne 0 ]; then 233+# echo "[FAIL]" 234+# exitcode=1 235+#else 236+# echo "[PASS]" 237+#fi 238+# 239+#shmmax=`cat /proc/sys/kernel/shmmax` 240+#shmall=`cat /proc/sys/kernel/shmall` 241+#echo 268435456 > /proc/sys/kernel/shmmax 242+#echo 4194304 > /proc/sys/kernel/shmall 243+#echo "--------------------" 244+#echo "running hugepage-shm" 245+#echo "--------------------" 246+#./hugepage-shm 247+#if [ $? -ne 0 ]; then 248+# echo "[FAIL]" 249+# exitcode=1 250+#else 251+# echo "[PASS]" 252+#fi 253+#echo $shmmax > /proc/sys/kernel/shmmax 254+#echo $shmall > /proc/sys/kernel/shmall 255+# 256+#echo "-------------------" 257+#echo "running map_hugetlb" 258+#echo "-------------------" 259+#./map_hugetlb 260+#if [ $? -ne 0 ]; then 261+# echo "[FAIL]" 262+# exitcode=1 263+#else 264+# echo "[PASS]" 265+#fi 266+# 267+#echo "NOTE: The above hugetlb tests provide minimal coverage. Use" 268+#echo " https://github.com/libhugetlbfs/libhugetlbfs.git for" 269+#echo " hugetlb regression testing." 270+# 271+#echo "-------------------" 272+#echo "running userfaultfd" 273+#echo "-------------------" 274+#./userfaultfd anon 128 32 275+#if [ $? -ne 0 ]; then 276+# echo "[FAIL]" 277+# exitcode=1 278+#else 279+# echo "[PASS]" 280+#fi 281+# 282+#echo "---------------------------" 283+#echo "running userfaultfd_hugetlb" 284+#echo "---------------------------" 285+## Test requires source and destination huge pages. Size of source 286+## (half_ufd_size_MB) is passed as argument to test. 287+#./userfaultfd hugetlb $half_ufd_size_MB 32 $mnt/ufd_test_file 288+#if [ $? -ne 0 ]; then 289+# echo "[FAIL]" 290+# exitcode=1 291+#else 292+# echo "[PASS]" 293+#fi 294+#rm -f $mnt/ufd_test_file 295+# 296+#echo "-------------------------" 297+#echo "running userfaultfd_shmem" 298+#echo "-------------------------" 299+#./userfaultfd shmem 128 32 300+#if [ $? -ne 0 ]; then 301+# echo "[FAIL]" 302+# exitcode=1 303+#else 304+# echo "[PASS]" 305+#fi 306+# 307+##cleanup 308+#umount $mnt 309+#rm -rf $mnt 310+#echo $nr_hugepgs > /proc/sys/vm/nr_hugepages 311+# 312+#echo "-----------------------" 313+#echo "running compaction_test" 314+#echo "-----------------------" 315+#./compaction_test 316+#if [ $? -ne 0 ]; then 317+# echo "[FAIL]" 318+# exitcode=1 319+#else 320+# echo "[PASS]" 321+#fi 322 323 echo "----------------------" 324 echo "running on-fault-limit" 325