KVM selftests are built with -fno-PIE/-no-pie so the binary uses fixed
load addresses.
On powerpc64, GNU ld default links at 0x10000000 (256M) which is also
the MEM_GPA, so the identity map trips with the error:
PTE already present at level: 4 gva: 0x10000000 pte:0xc00000000002018f
Put the test slots at 512M instead which is past the ELF.
e.g. failure w/o this fix:
./memslot_perf_test -s 514
Random seed: 0x423558ef
Testing map performance with 1 runs, 5 seconds each
==== Test Assertion Failure ====
lib/powerpc/processor.c:235: !pte
pid=371 tid=371 errno=2 - No such file or directory
1 0x0000000010018293: virt_arch_pg_map at processor.c:235
2 0x0000000010008b3f: virt_pg_map at kvm_util.h:1325
3 (inlined by) virt_map at kvm_util.c:1571
4 0x0000000010001cab: prepare_vm at memslot_perf_test.c:353
5 (inlined by) test_execute at memslot_perf_test.c:816
6 (inlined by) test_loop at memslot_perf_test.c:1062
7 (inlined by) main at memslot_perf_test.c:1136
8 0x000000001001d713: __libc_start_call_main at libc-start.o:?
9 0x000000001001db47: __libc_start_main_impl at ??:?
PTE already present at level: 4 gva: 0x10000000 pte:0xc00000000002018f
Signed-off-by: Ritesh Harjani (IBM) <[email protected]>
---
tools/testing/selftests/kvm/memslot_perf_test.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/tools/testing/selftests/kvm/memslot_perf_test.c
b/tools/testing/selftests/kvm/memslot_perf_test.c
index 844ea9b7bb41..2913a4de4cc9 100644
--- a/tools/testing/selftests/kvm/memslot_perf_test.c
+++ b/tools/testing/selftests/kvm/memslot_perf_test.c
@@ -30,7 +30,7 @@
#define MEM_EXTRA_SIZE SZ_64K
#define MEM_SIZE (SZ_512M + MEM_EXTRA_SIZE)
-#define MEM_GPA SZ_256M
+#define MEM_GPA SZ_512M
#define MEM_AUX_GPA MEM_GPA
#define MEM_SYNC_GPA MEM_AUX_GPA
#define MEM_TEST_GPA (MEM_AUX_GPA + MEM_EXTRA_SIZE)
--
2.39.5