• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1The hugepage-mmap, hugepage-shm, map_hugetlb, compaction, and
2userfaultfd tests cannot be run due to unmet dependencies.
3
4Bug: 67017050
5
6--- a/tools/testing/selftests/vm/run_vmtests
7+++ b/tools/testing/selftests/vm/run_vmtests
8@@ -8,161 +8,161 @@
9 mnt=./huge
10 exitcode=0
11
12-#get huge pagesize and freepages from /proc/meminfo
13-while read name size unit; do
14-	if [ "$name" = "HugePages_Free:" ]; then
15-		freepgs=$size
16-	fi
17-	if [ "$name" = "Hugepagesize:" ]; then
18-		hpgsize_KB=$size
19-	fi
20-done < /proc/meminfo
21-
22-# Simple hugetlbfs tests have a hardcoded minimum requirement of
23-# huge pages totaling 256MB (262144KB) in size.  The userfaultfd
24-# hugetlb test requires a minimum of 2 * nr_cpus huge pages.  Take
25-# both of these requirements into account and attempt to increase
26-# number of huge pages available.
27-nr_cpus=$(nproc)
28-hpgsize_MB=$((hpgsize_KB / 1024))
29-half_ufd_size_MB=$((((nr_cpus * hpgsize_MB + 127) / 128) * 128))
30-needmem_KB=$((half_ufd_size_MB * 2 * 1024))
31-
32-#set proper nr_hugepages
33-if [ -n "$freepgs" ] && [ -n "$hpgsize_KB" ]; then
34-	nr_hugepgs=`cat /proc/sys/vm/nr_hugepages`
35-	needpgs=$((needmem_KB / hpgsize_KB))
36-	tries=2
37-	while [ $tries -gt 0 ] && [ $freepgs -lt $needpgs ]; do
38-		lackpgs=$(( $needpgs - $freepgs ))
39-		echo 3 > /proc/sys/vm/drop_caches
40-		echo $(( $lackpgs + $nr_hugepgs )) > /proc/sys/vm/nr_hugepages
41-		if [ $? -ne 0 ]; then
42-			echo "Please run this test as root"
43-			exit $ksft_skip
44-		fi
45-		while read name size unit; do
46-			if [ "$name" = "HugePages_Free:" ]; then
47-				freepgs=$size
48-			fi
49-		done < /proc/meminfo
50-		tries=$((tries - 1))
51-	done
52-	if [ $freepgs -lt $needpgs ]; then
53-		printf "Not enough huge pages available (%d < %d)\n" \
54-		       $freepgs $needpgs
55-		exit 1
56-	fi
57-else
58-	echo "no hugetlbfs support in kernel?"
59-	exit 1
60-fi
61-
62-#filter 64bit architectures
63-ARCH64STR="arm64 ia64 mips64 parisc64 ppc64 riscv64 s390x sh64 sparc64 x86_64"
64-if [ -z $ARCH ]; then
65-  ARCH=`uname -m 2>/dev/null | sed -e 's/aarch64.*/arm64/'`
66-fi
67-VADDR64=0
68-echo "$ARCH64STR" | grep $ARCH && VADDR64=1
69-
70-mkdir $mnt
71-mount -t hugetlbfs none $mnt
72-
73-echo "---------------------"
74-echo "running hugepage-mmap"
75-echo "---------------------"
76-./hugepage-mmap
77-if [ $? -ne 0 ]; then
78-	echo "[FAIL]"
79-	exitcode=1
80-else
81-	echo "[PASS]"
82-fi
83-
84-shmmax=`cat /proc/sys/kernel/shmmax`
85-shmall=`cat /proc/sys/kernel/shmall`
86-echo 268435456 > /proc/sys/kernel/shmmax
87-echo 4194304 > /proc/sys/kernel/shmall
88-echo "--------------------"
89-echo "running hugepage-shm"
90-echo "--------------------"
91-./hugepage-shm
92-if [ $? -ne 0 ]; then
93-	echo "[FAIL]"
94-	exitcode=1
95-else
96-	echo "[PASS]"
97-fi
98-echo $shmmax > /proc/sys/kernel/shmmax
99-echo $shmall > /proc/sys/kernel/shmall
100-
101-echo "-------------------"
102-echo "running map_hugetlb"
103-echo "-------------------"
104-./map_hugetlb
105-if [ $? -ne 0 ]; then
106-	echo "[FAIL]"
107-	exitcode=1
108-else
109-	echo "[PASS]"
110-fi
111-
112-echo "NOTE: The above hugetlb tests provide minimal coverage.  Use"
113-echo "      https://github.com/libhugetlbfs/libhugetlbfs.git for"
114-echo "      hugetlb regression testing."
115-
116-echo "-------------------"
117-echo "running userfaultfd"
118-echo "-------------------"
119-./userfaultfd anon 128 32
120-if [ $? -ne 0 ]; then
121-	echo "[FAIL]"
122-	exitcode=1
123-else
124-	echo "[PASS]"
125-fi
126-
127-echo "---------------------------"
128-echo "running userfaultfd_hugetlb"
129-echo "---------------------------"
130-# Test requires source and destination huge pages.  Size of source
131-# (half_ufd_size_MB) is passed as argument to test.
132-./userfaultfd hugetlb $half_ufd_size_MB 32 $mnt/ufd_test_file
133-if [ $? -ne 0 ]; then
134-	echo "[FAIL]"
135-	exitcode=1
136-else
137-	echo "[PASS]"
138-fi
139-rm -f $mnt/ufd_test_file
140-
141-echo "-------------------------"
142-echo "running userfaultfd_shmem"
143-echo "-------------------------"
144-./userfaultfd shmem 128 32
145-if [ $? -ne 0 ]; then
146-	echo "[FAIL]"
147-	exitcode=1
148-else
149-	echo "[PASS]"
150-fi
151-
152-#cleanup
153-umount $mnt
154-rm -rf $mnt
155-echo $nr_hugepgs > /proc/sys/vm/nr_hugepages
156-
157-echo "-----------------------"
158-echo "running compaction_test"
159-echo "-----------------------"
160-./compaction_test
161-if [ $? -ne 0 ]; then
162-	echo "[FAIL]"
163-	exitcode=1
164-else
165-	echo "[PASS]"
166-fi
167+##get huge pagesize and freepages from /proc/meminfo
168+#while read name size unit; do
169+#	if [ "$name" = "HugePages_Free:" ]; then
170+#		freepgs=$size
171+#	fi
172+#	if [ "$name" = "Hugepagesize:" ]; then
173+#		hpgsize_KB=$size
174+#	fi
175+#done < /proc/meminfo
176+#
177+## Simple hugetlbfs tests have a hardcoded minimum requirement of
178+## huge pages totaling 256MB (262144KB) in size.  The userfaultfd
179+## hugetlb test requires a minimum of 2 * nr_cpus huge pages.  Take
180+## both of these requirements into account and attempt to increase
181+## number of huge pages available.
182+#nr_cpus=$(nproc)
183+#hpgsize_MB=$((hpgsize_KB / 1024))
184+#half_ufd_size_MB=$((((nr_cpus * hpgsize_MB + 127) / 128) * 128))
185+#needmem_KB=$((half_ufd_size_MB * 2 * 1024))
186+#
187+##set proper nr_hugepages
188+#if [ -n "$freepgs" ] && [ -n "$hpgsize_KB" ]; then
189+#	nr_hugepgs=`cat /proc/sys/vm/nr_hugepages`
190+#	needpgs=$((needmem_KB / hpgsize_KB))
191+#	tries=2
192+#	while [ $tries -gt 0 ] && [ $freepgs -lt $needpgs ]; do
193+#		lackpgs=$(( $needpgs - $freepgs ))
194+#		echo 3 > /proc/sys/vm/drop_caches
195+#		echo $(( $lackpgs + $nr_hugepgs )) > /proc/sys/vm/nr_hugepages
196+#		if [ $? -ne 0 ]; then
197+#			echo "Please run this test as root"
198+#			exit $ksft_skip
199+#		fi
200+#		while read name size unit; do
201+#			if [ "$name" = "HugePages_Free:" ]; then
202+#				freepgs=$size
203+#			fi
204+#		done < /proc/meminfo
205+#		tries=$((tries - 1))
206+#	done
207+#	if [ $freepgs -lt $needpgs ]; then
208+#		printf "Not enough huge pages available (%d < %d)\n" \
209+#		       $freepgs $needpgs
210+#		exit 1
211+#	fi
212+#else
213+#	echo "no hugetlbfs support in kernel?"
214+#	exit 1
215+#fi
216+#
217+##filter 64bit architectures
218+#ARCH64STR="arm64 ia64 mips64 parisc64 ppc64 riscv64 s390x sh64 sparc64 x86_64"
219+#if [ -z $ARCH ]; then
220+#  ARCH=`uname -m 2>/dev/null | sed -e 's/aarch64.*/arm64/'`
221+#fi
222+#VADDR64=0
223+#echo "$ARCH64STR" | grep $ARCH && VADDR64=1
224+#
225+#mkdir $mnt
226+#mount -t hugetlbfs none $mnt
227+#
228+#echo "---------------------"
229+#echo "running hugepage-mmap"
230+#echo "---------------------"
231+#./hugepage-mmap
232+#if [ $? -ne 0 ]; then
233+#	echo "[FAIL]"
234+#	exitcode=1
235+#else
236+#	echo "[PASS]"
237+#fi
238+#
239+#shmmax=`cat /proc/sys/kernel/shmmax`
240+#shmall=`cat /proc/sys/kernel/shmall`
241+#echo 268435456 > /proc/sys/kernel/shmmax
242+#echo 4194304 > /proc/sys/kernel/shmall
243+#echo "--------------------"
244+#echo "running hugepage-shm"
245+#echo "--------------------"
246+#./hugepage-shm
247+#if [ $? -ne 0 ]; then
248+#	echo "[FAIL]"
249+#	exitcode=1
250+#else
251+#	echo "[PASS]"
252+#fi
253+#echo $shmmax > /proc/sys/kernel/shmmax
254+#echo $shmall > /proc/sys/kernel/shmall
255+#
256+#echo "-------------------"
257+#echo "running map_hugetlb"
258+#echo "-------------------"
259+#./map_hugetlb
260+#if [ $? -ne 0 ]; then
261+#	echo "[FAIL]"
262+#	exitcode=1
263+#else
264+#	echo "[PASS]"
265+#fi
266+#
267+#echo "NOTE: The above hugetlb tests provide minimal coverage.  Use"
268+#echo "      https://github.com/libhugetlbfs/libhugetlbfs.git for"
269+#echo "      hugetlb regression testing."
270+#
271+#echo "-------------------"
272+#echo "running userfaultfd"
273+#echo "-------------------"
274+#./userfaultfd anon 128 32
275+#if [ $? -ne 0 ]; then
276+#	echo "[FAIL]"
277+#	exitcode=1
278+#else
279+#	echo "[PASS]"
280+#fi
281+#
282+#echo "---------------------------"
283+#echo "running userfaultfd_hugetlb"
284+#echo "---------------------------"
285+## Test requires source and destination huge pages.  Size of source
286+## (half_ufd_size_MB) is passed as argument to test.
287+#./userfaultfd hugetlb $half_ufd_size_MB 32 $mnt/ufd_test_file
288+#if [ $? -ne 0 ]; then
289+#	echo "[FAIL]"
290+#	exitcode=1
291+#else
292+#	echo "[PASS]"
293+#fi
294+#rm -f $mnt/ufd_test_file
295+#
296+#echo "-------------------------"
297+#echo "running userfaultfd_shmem"
298+#echo "-------------------------"
299+#./userfaultfd shmem 128 32
300+#if [ $? -ne 0 ]; then
301+#	echo "[FAIL]"
302+#	exitcode=1
303+#else
304+#	echo "[PASS]"
305+#fi
306+#
307+##cleanup
308+#umount $mnt
309+#rm -rf $mnt
310+#echo $nr_hugepgs > /proc/sys/vm/nr_hugepages
311+#
312+#echo "-----------------------"
313+#echo "running compaction_test"
314+#echo "-----------------------"
315+#./compaction_test
316+#if [ $? -ne 0 ]; then
317+#	echo "[FAIL]"
318+#	exitcode=1
319+#else
320+#	echo "[PASS]"
321+#fi
322
323 echo "----------------------"
324 echo "running on-fault-limit"
325