summaryrefslogblamecommitdiffstats
path: root/tools/testing/selftests/vm/run_vmtests
blob: c87b6812300d62b3875c95cf31125b1aa2d28536 (plain) (tree)
1
2
3
4
5
6
7





                                      
          































                                                                              
                            



                           
                  








                                        
                           



                           
                  






                                      
                          



                           
                  



                     










                            



                                            
              
#!/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
exit $exitcode