As the confusing naming indicates, this test has some overlap with pre-existing tests. Would be nice to merge them eventually. But since it is only test code, cleanliness is much less important than mere existence. Signed-off-by: Joern Engel <joern@logfs.org> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
		
			
				
	
	
		
			93 lines
		
	
	
	
		
			1.8 KiB
			
		
	
	
	
		
			Bash
		
	
	
	
	
	
			
		
		
	
	
			93 lines
		
	
	
	
		
			1.8 KiB
			
		
	
	
	
		
			Bash
		
	
	
	
	
	
#!/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
 |