123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106 |
- #!/bin/bash
- #please run as root
- #we need 256M, below is the size in kB
- needmem=262144
- mnt=./huge
- exitcode=0
- #get pagesize and freepages from /proc/meminfo
- while read name size unit; do
- if [ "$name" = "HugePages_Free:" ]; then
- freepgs=$size
- fi
- if [ "$name" = "Hugepagesize:" ]; then
- pgsize=$size
- fi
- done < /proc/meminfo
- #set proper nr_hugepages
- if [ -n "$freepgs" ] && [ -n "$pgsize" ]; then
- nr_hugepgs=`cat /proc/sys/vm/nr_hugepages`
- needpgs=`expr $needmem / $pgsize`
- if [ $freepgs -lt $needpgs ]; then
- lackpgs=$(( $needpgs - $freepgs ))
- echo $(( $lackpgs + $nr_hugepgs )) > /proc/sys/vm/nr_hugepages
- if [ $? -ne 0 ]; then
- echo "Please run this test as root"
- exit 1
- fi
- fi
- else
- echo "no hugetlbfs support in kernel?"
- exit 1
- fi
- mkdir $mnt
- mount -t hugetlbfs none $mnt
- echo "--------------------"
- echo "running hugepage-mmap"
- echo "--------------------"
- ./hugepage-mmap
- if [ $? -ne 0 ]; then
- echo "[FAIL]"
- exitcode=1
- else
- echo "[PASS]"
- fi
- shmmax=`cat /proc/sys/kernel/shmmax`
- shmall=`cat /proc/sys/kernel/shmall`
- echo 268435456 > /proc/sys/kernel/shmmax
- echo 4194304 > /proc/sys/kernel/shmall
- echo "--------------------"
- echo "running hugepage-shm"
- echo "--------------------"
- ./hugepage-shm
- if [ $? -ne 0 ]; then
- echo "[FAIL]"
- exitcode=1
- else
- echo "[PASS]"
- fi
- echo $shmmax > /proc/sys/kernel/shmmax
- echo $shmall > /proc/sys/kernel/shmall
- echo "--------------------"
- echo "running map_hugetlb"
- echo "--------------------"
- ./map_hugetlb
- if [ $? -ne 0 ]; then
- echo "[FAIL]"
- exitcode=1
- else
- echo "[PASS]"
- fi
- echo "--------------------"
- echo "running hugetlbfstest"
- echo "--------------------"
- ./hugetlbfstest
- if [ $? -ne 0 ]; then
- echo "[FAIL]"
- exitcode=1
- else
- echo "[PASS]"
- fi
- #cleanup
- umount $mnt
- rm -rf $mnt
- echo $nr_hugepgs > /proc/sys/vm/nr_hugepages
- echo "-----------------------"
- echo "running compaction_test"
- echo "-----------------------"
- ./compaction_test
- if [ $? -ne 0 ]; then
- echo "[FAIL]"
- exitcode=1
- else
- echo "[PASS]"
- fi
- exit $exitcode
|