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