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 "NOTE: The above hugetlb tests provide minimal coverage. Use"
79echo " https://github.com/libhugetlbfs/libhugetlbfs.git for"
80echo " hugetlb regression testing."
81
82echo "--------------------"
83echo "running userfaultfd"
84echo "--------------------"
85./userfaultfd 128 32
86if [ $? -ne 0 ]; then
87 echo "[FAIL]"
88 exitcode=1
89else
90 echo "[PASS]"
91fi
92
93#cleanup
94umount $mnt
95rm -rf $mnt
96echo $nr_hugepgs > /proc/sys/vm/nr_hugepages
97
98echo "-----------------------"
99echo "running compaction_test"
100echo "-----------------------"
101./compaction_test
102if [ $? -ne 0 ]; then
103 echo "[FAIL]"
104 exitcode=1
105else
106 echo "[PASS]"
107fi
108
109exit $exitcode