Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/bash
- #please run as root
- echo "cat /proc/meminfo"
- cat /proc/meminfo
- echo "cat /proc/sys/vm/nr_hugepages"
- cat /proc/sys/vm/nr_hugepages
- echo "cat /proc/slabinfo"
- cat /proc/slabinfo
- echo "cat /proc/buddyinfo"
- cat /proc/buddyinfo
- #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`
- 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
- fi
- else
- echo "no hugetlbfs support in kernel?"
- exit 1
- fi
- mkdir $mnt
- mount -t hugetlbfs none $mnt
- #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
- echo "cat /proc/meminfo"
- cat /proc/meminfo
- echo "cat /proc/sys/vm/nr_hugepages"
- cat /proc/sys/vm/nr_hugepages
- echo "cat /proc/slabinfo"
- cat /proc/slabinfo
- echo "cat /proc/buddyinfo"
- cat /proc/buddyinfo
- exit $exitcode
Add Comment
Please, Sign In to add comment