0001
0002
0003
0004
0005 ksft_skip=4
0006
0007
0008
0009
0010
0011 hpages_test=8
0012
0013
0014
0015
0016 while read name size unit; do
0017 if [ "$name" = "HugePages_Free:" ]; then
0018 freepgs=$size
0019 fi
0020 done < /proc/meminfo
0021
0022
0023
0024
0025 if [ -n "$freepgs" ] && [ $freepgs -lt $hpages_test ]; then
0026 nr_hugepgs=`cat /proc/sys/vm/nr_hugepages`
0027 hpages_needed=`expr $hpages_test - $freepgs`
0028
0029 if [ $UID != 0 ]; then
0030 echo "Please run memfd with hugetlbfs test as root"
0031 exit $ksft_skip
0032 fi
0033
0034 echo 3 > /proc/sys/vm/drop_caches
0035 echo $(( $hpages_needed + $nr_hugepgs )) > /proc/sys/vm/nr_hugepages
0036 while read name size unit; do
0037 if [ "$name" = "HugePages_Free:" ]; then
0038 freepgs=$size
0039 fi
0040 done < /proc/meminfo
0041 fi
0042
0043
0044
0045
0046
0047 if [ $freepgs -lt $hpages_test ]; then
0048
0049 if [ -n "$nr_hugepgs" ]; then
0050 echo $nr_hugepgs > /proc/sys/vm/nr_hugepages
0051 fi
0052 printf "Not enough huge pages available (%d < %d)\n" \
0053 $freepgs $needpgs
0054 exit $ksft_skip
0055 fi
0056
0057
0058
0059
0060 ./memfd_test hugetlbfs
0061 ./run_fuse_test.sh hugetlbfs
0062
0063
0064
0065
0066 if [ -n "$nr_hugepgs" ]; then
0067 echo $nr_hugepgs > /proc/sys/vm/nr_hugepages
0068 fi