diff --git a/tools/testing/selftests/kvm/Makefile.kvm b/tools/testing/selftests/kvm/Makefile.kvm index 4b7f6ab0ee54..692bbae44a65 100644 --- a/tools/testing/selftests/kvm/Makefile.kvm +++ b/tools/testing/selftests/kvm/Makefile.kvm @@ -257,6 +257,7 @@ TEST_GEN_PROGS_loongarch += set_memory_region_test TEST_GEN_PROGS_loongarch += steal_time TEST_GEN_PROGS_powerpc = $(TEST_GEN_PROGS_COMMON) +TEST_GEN_PROGS_powerpc += access_tracking_perf_test SPLIT_TESTS += arch_timer SPLIT_TESTS += get-reg-list diff --git a/tools/testing/selftests/kvm/access_tracking_perf_test.c b/tools/testing/selftests/kvm/access_tracking_perf_test.c index 4415c94b2866..eb6939065e79 100644 --- a/tools/testing/selftests/kvm/access_tracking_perf_test.c +++ b/tools/testing/selftests/kvm/access_tracking_perf_test.c @@ -471,6 +471,16 @@ static int access_tracking_unreliable(void) return 1; } #endif + /* + * PowerPC: Nested KVM (pSeries LPAR) can hide accessed/idle, since KVM + * doesn't explicitely flush the TLB for access bit update. L0 keeps + * translations cached so the guest won't see the idle bit cleared. + */ + if (kvm_is_ppc_pseries_lpar()) { + puts("Skipping idle page count sanity check, because the test is run nested"); + return 1; + } + /* * When NUMA balancing is enabled, guest memory will be unmapped to get * NUMA faults, dropping the Accessed bits.