selftests: add hugetlbfstest
[deliverable/linux.git] / tools / testing / selftests / vm / run_vmtests
CommitLineData
f0f57b2b
DY
1#!/bin/bash
2#please run as root
3
4#we need 256M, below is the size in kB
5needmem=262144
6mnt=./huge
51a1d165 7exitcode=0
f0f57b2b
DY
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 "--------------------"
ce8283d5 40echo "running hugepage-mmap"
f0f57b2b
DY
41echo "--------------------"
42./hugepage-mmap
43if [ $? -ne 0 ]; then
44 echo "[FAIL]"
51a1d165 45 exitcode=1
f0f57b2b
DY
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 "--------------------"
ce8283d5 55echo "running hugepage-shm"
f0f57b2b
DY
56echo "--------------------"
57./hugepage-shm
58if [ $? -ne 0 ]; then
59 echo "[FAIL]"
51a1d165 60 exitcode=1
f0f57b2b
DY
61else
62 echo "[PASS]"
63fi
64echo $shmmax > /proc/sys/kernel/shmmax
65echo $shmall > /proc/sys/kernel/shmall
66
67echo "--------------------"
ce8283d5 68echo "running map_hugetlb"
f0f57b2b
DY
69echo "--------------------"
70./map_hugetlb
71if [ $? -ne 0 ]; then
72 echo "[FAIL]"
51a1d165 73 exitcode=1
f0f57b2b
DY
74else
75 echo "[PASS]"
76fi
77
7e50533d
JE
78echo "--------------------"
79echo "running hugetlbfstest"
80echo "--------------------"
81./hugetlbfstest
82if [ $? -ne 0 ]; then
83 echo "[FAIL]"
84 exitcode=1
85else
86 echo "[PASS]"
87fi
88
f0f57b2b
DY
89#cleanup
90umount $mnt
91rm -rf $mnt
92echo $nr_hugepgs > /proc/sys/vm/nr_hugepages
51a1d165 93exit $exitcode
This page took 0.0858 seconds and 5 git commands to generate.