1From 751d6062f18faffca34fe9e98ca4a139d6c468d7 Mon Sep 17 00:00:00 2001
2From: Edward Liaw <[email protected]>
3Date: Tue, 19 Apr 2022 23:09:36 +0000
4Subject: [PATCH 11/20] run_vmtests: Disable tests with unmet dependencies
5
6The hugepage-mmap, hugepage-shm, map_hugetlb, compaction, and
7userfaultfd tests cannot be run due to unmet dependencies.
8
9(cherry picked from commit 946413011af990b7220e73af57c0bc2196275524)
10Bug: 67017050
11Test: make -j vts
12---
13 tools/testing/selftests/vm/run_vmtests.sh | 298 +++++++++++-----------
14 1 file changed, 149 insertions(+), 149 deletions(-)
15
16diff --git a/tools/testing/selftests/vm/run_vmtests.sh b/tools/testing/selftests/vm/run_vmtests.sh
17index e780e76c26b8..b936dfe44822 100755
18--- a/tools/testing/selftests/vm/run_vmtests.sh
19+++ b/tools/testing/selftests/vm/run_vmtests.sh
20@@ -8,62 +8,62 @@ ksft_skip=4
21 mnt=./huge
22 exitcode=0
23
24-#get huge pagesize and freepages from /proc/meminfo
25-while read -r name size unit; do
26-	if [ "$name" = "HugePages_Free:" ]; then
27-		freepgs="$size"
28-	fi
29-	if [ "$name" = "Hugepagesize:" ]; then
30-		hpgsize_KB="$size"
31-	fi
32-done < /proc/meminfo
33-
34-# Simple hugetlbfs tests have a hardcoded minimum requirement of
35-# huge pages totaling 256MB (262144KB) in size.  The userfaultfd
36-# hugetlb test requires a minimum of 2 * nr_cpus huge pages.  Take
37-# both of these requirements into account and attempt to increase
38-# number of huge pages available.
39-nr_cpus=$(nproc)
40-hpgsize_MB=$((hpgsize_KB / 1024))
41-half_ufd_size_MB=$((((nr_cpus * hpgsize_MB + 127) / 128) * 128))
42-needmem_KB=$((half_ufd_size_MB * 2 * 1024))
43-
44-#set proper nr_hugepages
45-if [ -n "$freepgs" ] && [ -n "$hpgsize_KB" ]; then
46-	nr_hugepgs=$(cat /proc/sys/vm/nr_hugepages)
47-	needpgs=$((needmem_KB / hpgsize_KB))
48-	tries=2
49-	while [ "$tries" -gt 0 ] && [ "$freepgs" -lt "$needpgs" ]; do
50-		lackpgs=$((needpgs - freepgs))
51-		echo 3 > /proc/sys/vm/drop_caches
52-		if ! echo $((lackpgs + nr_hugepgs)) > /proc/sys/vm/nr_hugepages; then
53-			echo "Please run this test as root"
54-			exit $ksft_skip
55-		fi
56-		while read -r name size unit; do
57-			if [ "$name" = "HugePages_Free:" ]; then
58-				freepgs=$size
59-			fi
60-		done < /proc/meminfo
61-		tries=$((tries - 1))
62-	done
63-	if [ "$freepgs" -lt "$needpgs" ]; then
64-		printf "Not enough huge pages available (%d < %d)\n" \
65-		       "$freepgs" "$needpgs"
66-		exit 1
67-	fi
68-else
69-	echo "no hugetlbfs support in kernel?"
70-	exit 1
71-fi
72-
73-#filter 64bit architectures
74-ARCH64STR="arm64 ia64 mips64 parisc64 ppc64 ppc64le riscv64 s390x sh64 sparc64 x86_64"
75-if [ -z "$ARCH" ]; then
76-	ARCH=$(uname -m 2>/dev/null | sed -e 's/aarch64.*/arm64/')
77-fi
78-VADDR64=0
79-echo "$ARCH64STR" | grep "$ARCH" && VADDR64=1
80+##get huge pagesize and freepages from /proc/meminfo
81+#while read -r name size unit; do
82+#	if [ "$name" = "HugePages_Free:" ]; then
83+#		freepgs="$size"
84+#	fi
85+#	if [ "$name" = "Hugepagesize:" ]; then
86+#		hpgsize_KB="$size"
87+#	fi
88+#done < /proc/meminfo
89+#
90+## Simple hugetlbfs tests have a hardcoded minimum requirement of
91+## huge pages totaling 256MB (262144KB) in size.  The userfaultfd
92+## hugetlb test requires a minimum of 2 * nr_cpus huge pages.  Take
93+## both of these requirements into account and attempt to increase
94+## number of huge pages available.
95+#nr_cpus=$(nproc)
96+#hpgsize_MB=$((hpgsize_KB / 1024))
97+#half_ufd_size_MB=$((((nr_cpus * hpgsize_MB + 127) / 128) * 128))
98+#needmem_KB=$((half_ufd_size_MB * 2 * 1024))
99+#
100+##set proper nr_hugepages
101+#if [ -n "$freepgs" ] && [ -n "$hpgsize_KB" ]; then
102+#	nr_hugepgs=$(cat /proc/sys/vm/nr_hugepages)
103+#	needpgs=$((needmem_KB / hpgsize_KB))
104+#	tries=2
105+#	while [ "$tries" -gt 0 ] && [ "$freepgs" -lt "$needpgs" ]; do
106+#		lackpgs=$((needpgs - freepgs))
107+#		echo 3 > /proc/sys/vm/drop_caches
108+#		if ! echo $((lackpgs + nr_hugepgs)) > /proc/sys/vm/nr_hugepages; then
109+#			echo "Please run this test as root"
110+#			exit $ksft_skip
111+#		fi
112+#		while read -r name size unit; do
113+#			if [ "$name" = "HugePages_Free:" ]; then
114+#				freepgs=$size
115+#			fi
116+#		done < /proc/meminfo
117+#		tries=$((tries - 1))
118+#	done
119+#	if [ "$freepgs" -lt "$needpgs" ]; then
120+#		printf "Not enough huge pages available (%d < %d)\n" \
121+#		       "$freepgs" "$needpgs"
122+#		exit 1
123+#	fi
124+#else
125+#	echo "no hugetlbfs support in kernel?"
126+#	exit 1
127+#fi
128+#
129+##filter 64bit architectures
130+#ARCH64STR="arm64 ia64 mips64 parisc64 ppc64 ppc64le riscv64 s390x sh64 sparc64 x86_64"
131+#if [ -z "$ARCH" ]; then
132+#	ARCH=$(uname -m 2>/dev/null | sed -e 's/aarch64.*/arm64/')
133+#fi
134+#VADDR64=0
135+#echo "$ARCH64STR" | grep "$ARCH" && VADDR64=1
136
137 # Usage: run_test [test binary] [arbitrary test arguments...]
138 run_test() {
139@@ -84,63 +84,63 @@ run_test() {
140 	fi
141 }
142
143-mkdir "$mnt"
144-mount -t hugetlbfs none "$mnt"
145-
146-run_test ./hugepage-mmap
147-
148-shmmax=$(cat /proc/sys/kernel/shmmax)
149-shmall=$(cat /proc/sys/kernel/shmall)
150-echo 268435456 > /proc/sys/kernel/shmmax
151-echo 4194304 > /proc/sys/kernel/shmall
152-run_test ./hugepage-shm
153-echo "$shmmax" > /proc/sys/kernel/shmmax
154-echo "$shmall" > /proc/sys/kernel/shmall
155-
156-run_test ./map_hugetlb
157-
158-run_test ./hugepage-mremap "$mnt"/huge_mremap
159-rm -f "$mnt"/huge_mremap
160-
161-run_test ./hugepage-vmemmap
162-
163-run_test ./hugetlb-madvise "$mnt"/madvise-test
164-rm -f "$mnt"/madvise-test
165-
166-echo "NOTE: The above hugetlb tests provide minimal coverage.  Use"
167-echo "      https://github.com/libhugetlbfs/libhugetlbfs.git for"
168-echo "      hugetlb regression testing."
169-
170-run_test ./map_fixed_noreplace
171-
172-# get_user_pages_fast() benchmark
173-run_test ./gup_test -u
174-# pin_user_pages_fast() benchmark
175-run_test ./gup_test -a
176-# Dump pages 0, 19, and 4096, using pin_user_pages:
177-run_test ./gup_test -ct -F 0x1 0 19 0x1000
178-
179-uffd_mods=("" ":dev")
180-for mod in "${uffd_mods[@]}"; do
181-	run_test ./userfaultfd anon${mod} 20 16
182-	# Hugetlb tests require source and destination huge pages. Pass in half
183-	# the size ($half_ufd_size_MB), which is used for *each*.
184-	run_test ./userfaultfd hugetlb${mod} "$half_ufd_size_MB" 32
185-	run_test ./userfaultfd hugetlb_shared${mod} "$half_ufd_size_MB" 32 "$mnt"/uffd-test
186-	rm -f "$mnt"/uffd-test
187-	run_test ./userfaultfd shmem${mod} 20 16
188-done
189-
190-#cleanup
191-umount "$mnt"
192-rm -rf "$mnt"
193-echo "$nr_hugepgs" > /proc/sys/vm/nr_hugepages
194-
195-run_test ./compaction_test
196+#mkdir "$mnt"
197+#mount -t hugetlbfs none "$mnt"
198+#
199+#run_test ./hugepage-mmap
200+#
201+#shmmax=$(cat /proc/sys/kernel/shmmax)
202+#shmall=$(cat /proc/sys/kernel/shmall)
203+#echo 268435456 > /proc/sys/kernel/shmmax
204+#echo 4194304 > /proc/sys/kernel/shmall
205+#run_test ./hugepage-shm
206+#echo "$shmmax" > /proc/sys/kernel/shmmax
207+#echo "$shmall" > /proc/sys/kernel/shmall
208+#
209+#run_test ./map_hugetlb
210+#
211+#run_test ./hugepage-mremap "$mnt"/huge_mremap
212+#rm -f "$mnt"/huge_mremap
213+#
214+#run_test ./hugepage-vmemmap
215+#
216+#run_test ./hugetlb-madvise "$mnt"/madvise-test
217+#rm -f "$mnt"/madvise-test
218+#
219+#echo "NOTE: The above hugetlb tests provide minimal coverage.  Use"
220+#echo "      https://github.com/libhugetlbfs/libhugetlbfs.git for"
221+#echo "      hugetlb regression testing."
222+#
223+#run_test ./map_fixed_noreplace
224+#
225+## get_user_pages_fast() benchmark
226+#run_test ./gup_test -u
227+## pin_user_pages_fast() benchmark
228+#run_test ./gup_test -a
229+## Dump pages 0, 19, and 4096, using pin_user_pages:
230+#run_test ./gup_test -ct -F 0x1 0 19 0x1000
231+#
232+#uffd_mods=("" ":dev")
233+#for mod in "${uffd_mods[@]}"; do
234+#	run_test ./userfaultfd anon${mod} 20 16
235+#	# Hugetlb tests require source and destination huge pages. Pass in half
236+#	# the size ($half_ufd_size_MB), which is used for *each*.
237+#	run_test ./userfaultfd hugetlb${mod} "$half_ufd_size_MB" 32
238+#	run_test ./userfaultfd hugetlb_shared${mod} "$half_ufd_size_MB" 32 "$mnt"/uffd-test
239+#	rm -f "$mnt"/uffd-test
240+#	run_test ./userfaultfd shmem${mod} 20 16
241+#done
242+#
243+##cleanup
244+#umount "$mnt"
245+#rm -rf "$mnt"
246+#echo "$nr_hugepgs" > /proc/sys/vm/nr_hugepages
247+#
248+#run_test ./compaction_test
249
250 run_test sudo -u nobody ./on-fault-limit
251
252-run_test ./map_populate
253+#run_test ./map_populate
254
255 run_test ./mlock-random-test
256
257@@ -152,49 +152,49 @@ run_test ./mremap_test
258
259 run_test ./thuge-gen
260
261-if [ $VADDR64 -ne 0 ]; then
262-	run_test ./virtual_address_range
263-
264-	# virtual address 128TB switch test
265-	run_test ./va_128TBswitch.sh
266-fi # VADDR64
267+#if [ $VADDR64 -ne 0 ]; then
268+#	run_test ./virtual_address_range
269+#
270+#	# virtual address 128TB switch test
271+#	run_test ./va_128TBswitch.sh
272+#fi # VADDR64
273
274 # vmalloc stability smoke test
275-run_test ./test_vmalloc.sh smoke
276+#run_test ./test_vmalloc.sh smoke
277
278 run_test ./mremap_dontunmap
279
280-run_test ./test_hmm.sh smoke
281-
282-# MADV_POPULATE_READ and MADV_POPULATE_WRITE tests
283-run_test ./madv_populate
284-
285-run_test ./memfd_secret
286-
287-# KSM MADV_MERGEABLE test with 10 identical pages
288-run_test ./ksm_tests -M -p 10
289-# KSM unmerge test
290-run_test ./ksm_tests -U
291-# KSM test with 10 zero pages and use_zero_pages = 0
292-run_test ./ksm_tests -Z -p 10 -z 0
293-# KSM test with 10 zero pages and use_zero_pages = 1
294-run_test ./ksm_tests -Z -p 10 -z 1
295-# KSM test with 2 NUMA nodes and merge_across_nodes = 1
296-run_test ./ksm_tests -N -m 1
297-# KSM test with 2 NUMA nodes and merge_across_nodes = 0
298-run_test ./ksm_tests -N -m 0
299-
300-# protection_keys tests
301-if [ -x ./protection_keys_32 ]
302-then
303-	run_test ./protection_keys_32
304-fi
305-
306-if [ -x ./protection_keys_64 ]
307-then
308-	run_test ./protection_keys_64
309-fi
310-
311-run_test ./soft-dirty
312+#run_test ./test_hmm.sh smoke
313+
314+## MADV_POPULATE_READ and MADV_POPULATE_WRITE tests
315+#run_test ./madv_populate
316+#
317+#run_test ./memfd_secret
318+
319+## KSM MADV_MERGEABLE test with 10 identical pages
320+#run_test ./ksm_tests -M -p 10
321+## KSM unmerge test
322+#run_test ./ksm_tests -U
323+## KSM test with 10 zero pages and use_zero_pages = 0
324+#run_test ./ksm_tests -Z -p 10 -z 0
325+## KSM test with 10 zero pages and use_zero_pages = 1
326+#run_test ./ksm_tests -Z -p 10 -z 1
327+## KSM test with 2 NUMA nodes and merge_across_nodes = 1
328+#run_test ./ksm_tests -N -m 1
329+## KSM test with 2 NUMA nodes and merge_across_nodes = 0
330+#run_test ./ksm_tests -N -m 0
331+
332+## protection_keys tests
333+#if [ -x ./protection_keys_32 ]
334+#then
335+#	run_test ./protection_keys_32
336+#fi
337+#
338+#if [ -x ./protection_keys_64 ]
339+#then
340+#	run_test ./protection_keys_64
341+#fi
342+#
343+#run_test ./soft-dirty
344
345 exit $exitcode
346--
3472.42.0.609.gbb76f46606-goog
348
349