selftests/mm: set overcommit_policy as OVERCOMMIT_ALWAYS
authorChaitanya S Prakash <chaitanyas.prakash@arm.com>
Thu, 23 Mar 2023 06:01:21 +0000 (11:31 +0530)
committerAndrew Morton <akpm@linux-foundation.org>
Thu, 6 Apr 2023 02:42:59 +0000 (19:42 -0700)
The kernel's default behaviour is to obstruct the allocation of high
virtual address as it handles memory overcommit in a heuristic manner.
Setting the parameter as OVERCOMMIT_ALWAYS, ensures kernel isn't
susceptible to the availability of a platform's physical memory when
denying a memory allocation request.

Link: https://lkml.kernel.org/r/20230323060121.1175830-4-chaitanyas.prakash@arm.com
Signed-off-by: Chaitanya S Prakash <chaitanyas.prakash@arm.com>
Cc: David Hildenbrand <david@redhat.com>
Cc: Shuah Khan <shuah@kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
tools/testing/selftests/mm/run_vmtests.sh

index 8984e0bb58c7a0a9e0aba3c5cb1e47e9164d00af..c0f93b668c0c73e29146ab7e460d6042ae32d63c 100644 (file)
@@ -220,7 +220,15 @@ CATEGORY="mremap" run_test ./mremap_test
 CATEGORY="hugetlb" run_test ./thuge-gen
 
 if [ $VADDR64 -ne 0 ]; then
+
+       # set overcommit_policy as OVERCOMMIT_ALWAYS so that kernel
+       # allows high virtual address allocation requests independent
+       # of platform's physical memory.
+
+       prev_policy=$(cat /proc/sys/vm/overcommit_memory)
+       echo 1 > /proc/sys/vm/overcommit_memory
        CATEGORY="hugevm" run_test ./virtual_address_range
+       echo $prev_policy > /proc/sys/vm/overcommit_memory
 
        # virtual address 128TB switch test
        CATEGORY="hugevm" run_test ./va_128TBswitch.sh