179 lines · 3.5 KB · Text
RawDownload
#!/bin/bash#please run as root #we need 256M, below is the size in kBneedmem=262144mnt=./hugeexitcode=0 #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`	tries=2	while [ $tries -gt 0 ] && [ $freepgs -lt $needpgs ]; do		lackpgs=$(( $needpgs - $freepgs ))		echo 3 > /proc/sys/vm/drop_caches		echo $(( $lackpgs + $nr_hugepgs )) > /proc/sys/vm/nr_hugepages		if [ $? -ne 0 ]; then			echo "Please run this test as root"			exit 1		fi		while read name size unit; do			if [ "$name" = "HugePages_Free:" ]; then				freepgs=$size			fi		done < /proc/meminfo		tries=$((tries - 1))	done	if [ $freepgs -lt $needpgs ]; then		printf "Not enough huge pages available (%d < %d)\n" \		       $freepgs $needpgs		exit 1	fielse	echo "no hugetlbfs support in kernel?"	exit 1fi mkdir $mntmount -t hugetlbfs none $mnt echo "---------------------"echo "running hugepage-mmap"echo "---------------------"./hugepage-mmapif [ $? -ne 0 ]; then	echo "[FAIL]"	exitcode=1else	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 "running hugepage-shm"echo "--------------------"./hugepage-shmif [ $? -ne 0 ]; then	echo "[FAIL]"	exitcode=1else	echo "[PASS]"fiecho $shmmax > /proc/sys/kernel/shmmaxecho $shmall > /proc/sys/kernel/shmall echo "-------------------"echo "running map_hugetlb"echo "-------------------"./map_hugetlbif [ $? -ne 0 ]; then	echo "[FAIL]"	exitcode=1else	echo "[PASS]"fi echo "NOTE: The above hugetlb tests provide minimal coverage.  Use"echo "      https://github.com/libhugetlbfs/libhugetlbfs.git for"echo "      hugetlb regression testing." echo "-------------------"echo "running userfaultfd"echo "-------------------"./userfaultfd anon 128 32if [ $? -ne 0 ]; then	echo "[FAIL]"	exitcode=1else	echo "[PASS]"fi echo "---------------------------"echo "running userfaultfd_hugetlb"echo "---------------------------"# 256MB total huge pages == 128MB src and 128MB dst./userfaultfd hugetlb 128 32 $mnt/ufd_test_fileif [ $? -ne 0 ]; then	echo "[FAIL]"	exitcode=1else	echo "[PASS]"firm -f $mnt/ufd_test_file echo "-------------------------"echo "running userfaultfd_shmem"echo "-------------------------"./userfaultfd shmem 128 32if [ $? -ne 0 ]; then	echo "[FAIL]"	exitcode=1else	echo "[PASS]"fi #cleanupumount $mntrm -rf $mntecho $nr_hugepgs > /proc/sys/vm/nr_hugepages echo "-----------------------"echo "running compaction_test"echo "-----------------------"./compaction_testif [ $? -ne 0 ]; then	echo "[FAIL]"	exitcode=1else	echo "[PASS]"fi echo "----------------------"echo "running on-fault-limit"echo "----------------------"sudo -u nobody ./on-fault-limitif [ $? -ne 0 ]; then	echo "[FAIL]"	exitcode=1else	echo "[PASS]"fi echo "--------------------"echo "running mlock2-tests"echo "--------------------"./mlock2-testsif [ $? -ne 0 ]; then	echo "[FAIL]"	exitcode=1else	echo "[PASS]"fi echo "-----------------------------"echo "running virtual_address_range"echo "-----------------------------"./virtual_address_rangeif [ $? -ne 0 ]; then	echo "[FAIL]"	exitcode=1else	echo "[PASS]"fi exit $exitcode

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t