77 lines · 1.5 KB · Text
RawDownload
#!/bin/bash#please run as root #we need 256M, below is the size in kBneedmem=262144mnt=./huge #get pagesize and freepages from /proc/meminfowhile read name size unit; do	if [ "$name" = "HugePages_Free:" ]; then		freepgs=$size	fi	if [ "$name" = "Hugepagesize:" ]; then		pgsize=$size	fidone < /proc/meminfo #set proper nr_hugepagesif [ -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	fielse	echo "no hugetlbfs support in kernel?"	exit 1fi mkdir $mntmount -t hugetlbfs none $mnt echo "--------------------"echo "runing hugepage-mmap"echo "--------------------"./hugepage-mmapif [ $? -ne 0 ]; then	echo "[FAIL]"else	echo "[PASS]"fi shmmax=`cat /proc/sys/kernel/shmmax`shmall=`cat /proc/sys/kernel/shmall`echo 268435456 > /proc/sys/kernel/shmmaxecho 4194304 > /proc/sys/kernel/shmallecho "--------------------"echo "runing hugepage-shm"echo "--------------------"./hugepage-shmif [ $? -ne 0 ]; then	echo "[FAIL]"else	echo "[PASS]"fiecho $shmmax > /proc/sys/kernel/shmmaxecho $shmall > /proc/sys/kernel/shmall echo "--------------------"echo "runing map_hugetlb"echo "--------------------"./map_hugetlbif [ $? -ne 0 ]; then	echo "[FAIL]"else	echo "[PASS]"fi #cleanupumount $mntrm -rf $mntecho $nr_hugepgs > /proc/sys/vm/nr_hugepages