run_vmtests 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106
  1. #!/bin/bash
  2. #please run as root
  3. #we need 256M, below is the size in kB
  4. needmem=262144
  5. mnt=./huge
  6. exitcode=0
  7. #get pagesize and freepages from /proc/meminfo
  8. while read name size unit; do
  9. if [ "$name" = "HugePages_Free:" ]; then
  10. freepgs=$size
  11. fi
  12. if [ "$name" = "Hugepagesize:" ]; then
  13. pgsize=$size
  14. fi
  15. done < /proc/meminfo
  16. #set proper nr_hugepages
  17. if [ -n "$freepgs" ] && [ -n "$pgsize" ]; then
  18. nr_hugepgs=`cat /proc/sys/vm/nr_hugepages`
  19. needpgs=`expr $needmem / $pgsize`
  20. if [ $freepgs -lt $needpgs ]; then
  21. lackpgs=$(( $needpgs - $freepgs ))
  22. echo $(( $lackpgs + $nr_hugepgs )) > /proc/sys/vm/nr_hugepages
  23. if [ $? -ne 0 ]; then
  24. echo "Please run this test as root"
  25. exit 1
  26. fi
  27. fi
  28. else
  29. echo "no hugetlbfs support in kernel?"
  30. exit 1
  31. fi
  32. mkdir $mnt
  33. mount -t hugetlbfs none $mnt
  34. echo "--------------------"
  35. echo "running hugepage-mmap"
  36. echo "--------------------"
  37. ./hugepage-mmap
  38. if [ $? -ne 0 ]; then
  39. echo "[FAIL]"
  40. exitcode=1
  41. else
  42. echo "[PASS]"
  43. fi
  44. shmmax=`cat /proc/sys/kernel/shmmax`
  45. shmall=`cat /proc/sys/kernel/shmall`
  46. echo 268435456 > /proc/sys/kernel/shmmax
  47. echo 4194304 > /proc/sys/kernel/shmall
  48. echo "--------------------"
  49. echo "running hugepage-shm"
  50. echo "--------------------"
  51. ./hugepage-shm
  52. if [ $? -ne 0 ]; then
  53. echo "[FAIL]"
  54. exitcode=1
  55. else
  56. echo "[PASS]"
  57. fi
  58. echo $shmmax > /proc/sys/kernel/shmmax
  59. echo $shmall > /proc/sys/kernel/shmall
  60. echo "--------------------"
  61. echo "running map_hugetlb"
  62. echo "--------------------"
  63. ./map_hugetlb
  64. if [ $? -ne 0 ]; then
  65. echo "[FAIL]"
  66. exitcode=1
  67. else
  68. echo "[PASS]"
  69. fi
  70. echo "--------------------"
  71. echo "running hugetlbfstest"
  72. echo "--------------------"
  73. ./hugetlbfstest
  74. if [ $? -ne 0 ]; then
  75. echo "[FAIL]"
  76. exitcode=1
  77. else
  78. echo "[PASS]"
  79. fi
  80. #cleanup
  81. umount $mnt
  82. rm -rf $mnt
  83. echo $nr_hugepgs > /proc/sys/vm/nr_hugepages
  84. echo "-----------------------"
  85. echo "running compaction_test"
  86. echo "-----------------------"
  87. ./compaction_test
  88. if [ $? -ne 0 ]; then
  89. echo "[FAIL]"
  90. exitcode=1
  91. else
  92. echo "[PASS]"
  93. fi
  94. exit $exitcode