at v4.3-rc5 109 lines 2.2 kB view raw
1#!/bin/bash 2#please run as root 3 4#we need 256M, below is the size in kB 5needmem=262144 6mnt=./huge 7exitcode=0 8 9#get pagesize and freepages from /proc/meminfo 10while read name size unit; do 11 if [ "$name" = "HugePages_Free:" ]; then 12 freepgs=$size 13 fi 14 if [ "$name" = "Hugepagesize:" ]; then 15 pgsize=$size 16 fi 17done < /proc/meminfo 18 19#set proper nr_hugepages 20if [ -n "$freepgs" ] && [ -n "$pgsize" ]; then 21 nr_hugepgs=`cat /proc/sys/vm/nr_hugepages` 22 needpgs=`expr $needmem / $pgsize` 23 if [ $freepgs -lt $needpgs ]; then 24 lackpgs=$(( $needpgs - $freepgs )) 25 echo $(( $lackpgs + $nr_hugepgs )) > /proc/sys/vm/nr_hugepages 26 if [ $? -ne 0 ]; then 27 echo "Please run this test as root" 28 exit 1 29 fi 30 fi 31else 32 echo "no hugetlbfs support in kernel?" 33 exit 1 34fi 35 36mkdir $mnt 37mount -t hugetlbfs none $mnt 38 39echo "--------------------" 40echo "running hugepage-mmap" 41echo "--------------------" 42./hugepage-mmap 43if [ $? -ne 0 ]; then 44 echo "[FAIL]" 45 exitcode=1 46else 47 echo "[PASS]" 48fi 49 50shmmax=`cat /proc/sys/kernel/shmmax` 51shmall=`cat /proc/sys/kernel/shmall` 52echo 268435456 > /proc/sys/kernel/shmmax 53echo 4194304 > /proc/sys/kernel/shmall 54echo "--------------------" 55echo "running hugepage-shm" 56echo "--------------------" 57./hugepage-shm 58if [ $? -ne 0 ]; then 59 echo "[FAIL]" 60 exitcode=1 61else 62 echo "[PASS]" 63fi 64echo $shmmax > /proc/sys/kernel/shmmax 65echo $shmall > /proc/sys/kernel/shmall 66 67echo "--------------------" 68echo "running map_hugetlb" 69echo "--------------------" 70./map_hugetlb 71if [ $? -ne 0 ]; then 72 echo "[FAIL]" 73 exitcode=1 74else 75 echo "[PASS]" 76fi 77 78echo "NOTE: The above hugetlb tests provide minimal coverage. Use" 79echo " https://github.com/libhugetlbfs/libhugetlbfs.git for" 80echo " hugetlb regression testing." 81 82echo "--------------------" 83echo "running userfaultfd" 84echo "--------------------" 85./userfaultfd 128 32 86if [ $? -ne 0 ]; then 87 echo "[FAIL]" 88 exitcode=1 89else 90 echo "[PASS]" 91fi 92 93#cleanup 94umount $mnt 95rm -rf $mnt 96echo $nr_hugepgs > /proc/sys/vm/nr_hugepages 97 98echo "-----------------------" 99echo "running compaction_test" 100echo "-----------------------" 101./compaction_test 102if [ $? -ne 0 ]; then 103 echo "[FAIL]" 104 exitcode=1 105else 106 echo "[PASS]" 107fi 108 109exit $exitcode