Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

selftests/mm: alloc hugepages in va_high_addr_switch test

Alloc hugepages in the test internally, so we don't fully rely on the
run_vmtests.sh. If run_vmtests.sh does that great, free hugepages is
enough for being used to run the test, leave it as it is, otherwise setup
the hugepages in the test.

Save the original nr_hugepages value and restore it after test finish, so
leave a stable test envronment.

Link: https://lkml.kernel.org/r/20250912013711.3002969-3-chuhu@redhat.com
Signed-off-by: Chunyu Hu <chuhu@redhat.com>
Cc: David Hildenbrand <david@redhat.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>

authored by

Chunyu Hu and committed by
Andrew Morton
d9d957bd 6e296bcf

+37
+37
tools/testing/selftests/mm/va_high_addr_switch.sh
··· 9 9 10 10 # Kselftest framework requirement - SKIP code is 4. 11 11 ksft_skip=4 12 + orig_nr_hugepages=0 12 13 13 14 skip() 14 15 { ··· 77 76 esac 78 77 } 79 78 79 + save_nr_hugepages() 80 + { 81 + orig_nr_hugepages=$(cat /proc/sys/vm/nr_hugepages) 82 + } 83 + 84 + restore_nr_hugepages() 85 + { 86 + echo "$orig_nr_hugepages" > /proc/sys/vm/nr_hugepages 87 + } 88 + 89 + setup_nr_hugepages() 90 + { 91 + local needpgs=$1 92 + while read -r name size unit; do 93 + if [ "$name" = "HugePages_Free:" ]; then 94 + freepgs="$size" 95 + break 96 + fi 97 + done < /proc/meminfo 98 + if [ "$freepgs" -ge "$needpgs" ]; then 99 + return 100 + fi 101 + local hpgs=$((orig_nr_hugepages + needpgs)) 102 + echo $hpgs > /proc/sys/vm/nr_hugepages 103 + 104 + local nr_hugepgs=$(cat /proc/sys/vm/nr_hugepages) 105 + if [ "$nr_hugepgs" != "$hpgs" ]; then 106 + restore_nr_hugepages 107 + skip "$0: no enough hugepages for testing" 108 + fi 109 + } 110 + 80 111 check_test_requirements 112 + save_nr_hugepages 113 + # 4 keep_mapped pages, and one for tmp usage 114 + setup_nr_hugepages 5 81 115 ./va_high_addr_switch --run-hugetlb 116 + restore_nr_hugepages