KVM: selftests: Enable access tracking perf test for PPC (with LPAR clause)

Enable the access tracking perf test for PPC, but skip the idle page count
sanity check when running as a pSeries LPAR, which has the same nested
TLB/access bit issue as x86.  PowerPC nested KVM (pSeries LPAR) can hide
accessed/idle, since KVM (L1) doesn't explicitly flush the TLB for access
bit update, so L0 keeps translations cached.  That also means that the L2
accesses do not refault and L1 thinks that the pages for L2 memory are
still idle.

Use kvm_is_ppc_pseries_lpar() check to detect when running nested on
powerpc pseries LPAR and only warn on the idle-page count.

Reported-by: Anushree Mathur <anushree.mathur@linux.ibm.com>
Tested-by: Anushree Mathur <anushree.mathur@linux.ibm.com>
Signed-off-by: Ritesh Harjani (IBM) <ritesh.list@gmail.com>
Reviewed-by: Gautam Menghani <gautam@linux.ibm.com>
Tested-by: Gautam Menghani <gautam@linux.ibm.com>
Acked-by: Madhavan Srinivasan <maddy@linux.ibm.com>
Link: https://patch.msgid.link/0227000da4e6fe69b278dc971b74b3f65b73ead9.1791280439.git.ritesh.list@gmail.com
[sean: massage changelog]
Signed-off-by: Sean Christopherson <seanjc@google.com>
This commit is contained in:
Ritesh Harjani (IBM) 2026-10-06 15:58:41 +05:30 committed by Sean Christopherson
parent 1b53b581d4
commit e5983ef19a
2 changed files with 11 additions and 0 deletions

View File

@ -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

View File

@ -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.