selftests: vm: Try harder to allocate huge pages
This commit is contained in:
parent
a748a69c46
commit
a29879587a
40
debian/patches/bugfix/all/selftests-vm-try-harder-to-allocate-huge-pages.patch
vendored
Normal file
40
debian/patches/bugfix/all/selftests-vm-try-harder-to-allocate-huge-pages.patch
vendored
Normal file
|
@ -0,0 +1,40 @@
|
|||
From: Ben Hutchings <ben@decadent.org.uk>
|
||||
Date: Sat, 31 Oct 2015 17:56:11 +0000
|
||||
Subject: selftests: vm: Try harder to allocate huge pages
|
||||
|
||||
If we need to increase the number of huge pages, drop caches first
|
||||
to reduce fragmentation and then check that we actually allocated
|
||||
as many as we wanted. Retry once if that doesn't work.
|
||||
|
||||
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
|
||||
---
|
||||
--- a/tools/testing/selftests/vm/run_vmtests
|
||||
+++ b/tools/testing/selftests/vm/run_vmtests
|
||||
@@ -20,13 +20,26 @@ done < /proc/meminfo
|
||||
if [ -n "$freepgs" ] && [ -n "$pgsize" ]; then
|
||||
nr_hugepgs=`cat /proc/sys/vm/nr_hugepages`
|
||||
needpgs=`expr $needmem / $pgsize`
|
||||
- if [ $freepgs -lt $needpgs ]; then
|
||||
+ tries=2
|
||||
+ while [ $tries -gt 0 ] && [ $freepgs -lt $needpgs ]; do
|
||||
lackpgs=$(( $needpgs - $freepgs ))
|
||||
+ echo 3 > /proc/sys/vm/drop_caches
|
||||
echo $(( $lackpgs + $nr_hugepgs )) > /proc/sys/vm/nr_hugepages
|
||||
if [ $? -ne 0 ]; then
|
||||
echo "Please run this test as root"
|
||||
exit 1
|
||||
fi
|
||||
+ while read name size unit; do
|
||||
+ if [ "$name" = "HugePages_Free:" ]; then
|
||||
+ freepgs=$size
|
||||
+ fi
|
||||
+ done < /proc/meminfo
|
||||
+ tries=$((tries - 1))
|
||||
+ done
|
||||
+ if [ $freepgs -lt $needpgs ]; then
|
||||
+ printf "Not enough huge pages available (%d < %d)\n" \
|
||||
+ $freepgs $needpgs
|
||||
+ exit 1
|
||||
fi
|
||||
else
|
||||
echo "no hugetlbfs support in kernel?"
|
|
@ -86,3 +86,4 @@ bugfix/all/selftests-add-missing-include-directives.patch
|
|||
bugfix/all/selftests-memfd-stop-unnecessary-rebuilds.patch
|
||||
bugfix/all/selftests-kprobe-choose-an-always-defined-function-t.patch
|
||||
bugfix/all/selftests-make-scripts-executable.patch
|
||||
bugfix/all/selftests-vm-try-harder-to-allocate-huge-pages.patch
|
||||
|
|
Loading…
Reference in New Issue