run_vmtests 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  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. #get pagesize and freepages from /proc/meminfo
  7. while read name size unit; do
  8. if [ "$name" = "HugePages_Free:" ]; then
  9. freepgs=$size
  10. fi
  11. if [ "$name" = "Hugepagesize:" ]; then
  12. pgsize=$size
  13. fi
  14. done < /proc/meminfo
  15. #set proper nr_hugepages
  16. if [ -n "$freepgs" ] && [ -n "$pgsize" ]; then
  17. nr_hugepgs=`cat /proc/sys/vm/nr_hugepages`
  18. needpgs=`expr $needmem / $pgsize`
  19. if [ $freepgs -lt $needpgs ]; then
  20. lackpgs=$(( $needpgs - $freepgs ))
  21. echo $(( $lackpgs + $nr_hugepgs )) > /proc/sys/vm/nr_hugepages
  22. if [ $? -ne 0 ]; then
  23. echo "Please run this test as root"
  24. exit 1
  25. fi
  26. fi
  27. else
  28. echo "no hugetlbfs support in kernel?"
  29. exit 1
  30. fi
  31. mkdir $mnt
  32. mount -t hugetlbfs none $mnt
  33. echo "--------------------"
  34. echo "runing hugepage-mmap"
  35. echo "--------------------"
  36. ./hugepage-mmap
  37. if [ $? -ne 0 ]; then
  38. echo "[FAIL]"
  39. else
  40. echo "[PASS]"
  41. fi
  42. shmmax=`cat /proc/sys/kernel/shmmax`
  43. shmall=`cat /proc/sys/kernel/shmall`
  44. echo 268435456 > /proc/sys/kernel/shmmax
  45. echo 4194304 > /proc/sys/kernel/shmall
  46. echo "--------------------"
  47. echo "runing hugepage-shm"
  48. echo "--------------------"
  49. ./hugepage-shm
  50. if [ $? -ne 0 ]; then
  51. echo "[FAIL]"
  52. else
  53. echo "[PASS]"
  54. fi
  55. echo $shmmax > /proc/sys/kernel/shmmax
  56. echo $shmall > /proc/sys/kernel/shmall
  57. echo "--------------------"
  58. echo "runing map_hugetlb"
  59. echo "--------------------"
  60. ./map_hugetlb
  61. if [ $? -ne 0 ]; then
  62. echo "[FAIL]"
  63. else
  64. echo "[PASS]"
  65. fi
  66. #cleanup
  67. umount $mnt
  68. rm -rf $mnt
  69. echo $nr_hugepgs > /proc/sys/vm/nr_hugepages