selftests/vm: only run 128TBswitch with 5-level paging
authorAdam Sindelar <adam@wowsignal.io>
Mon, 27 Jun 2022 16:39:12 +0000 (18:39 +0200)
committerakpm <akpm@linux-foundation.org>
Mon, 4 Jul 2022 01:08:52 +0000 (18:08 -0700)
commit4f2930c6718afbb6c5904cda6f6781a70c52a042
treee93f7d6e262c5d66aa2ba243e7431167ab4f54b6
parent1baec203b77cafa24610b5c9ae7a2aa380d74ef6
selftests/vm: only run 128TBswitch with 5-level paging

The test va_128TBswitch.c expects to be able to pass mmap an address hint
and length that cross the address 1<<47.  On x86_64, this is not possible
without 5-level page tables, so the test fails.

The test is already only run on 64-bit powerpc and x86_64 archs, but this
patch adds an additional check on x86_64 that skips the test if
PG_TABLE_LEVELS < 5.  There is precedent for checking /proc/config.gz in
selftests, e.g.  in selftests/firmware.

Running the tests produces the desired output:

sudo make -C tools/testing/selftests TARGETS=vm run_tests
---------------------------
running ./va_128TBswitch.sh
---------------------------
./va_128TBswitch.sh: PG_TABLE_LEVELS=4, must be >= 5 to run this test
[SKIP]
-------------------------------

[adam@wowsignal.io: restrict the check to x86_64]
Link: https://lkml.kernel.org/r/20220628163654.337600-1-adam@wowsignal.io
[adam@wowsignal.io: fix formatting issues, rename "die" to "fail"]
Link: https://lkml.kernel.org/r/20220701163030.415735-1-adam@wowsignal.io
Link: https://lkml.kernel.org/r/20220627163912.5581-1-adam@wowsignal.io
Signed-off-by: Adam Sindelar <adam@wowsignal.io>
Cc: Adam Sindelar <ats@fb.com>
Cc: David Vernet <void@manifault.com>
Cc: Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
tools/testing/selftests/vm/Makefile
tools/testing/selftests/vm/run_vmtests.sh
tools/testing/selftests/vm/va_128TBswitch.sh [new file with mode: 0644]