From: "Ritesh Harjani (IBM)" <ritesh.list@gmail.com>
To: kvm@vger.kernel.org, Sean Christopherson <seanjc@google.com>
Cc: Paolo Bonzini <pbonzini@redhat.com>,
linuxppc-dev@lists.ozlabs.org,
Michael Ellerman <mpe@ellerman.id.au>,
Christophe Leroy <chleroy@kernel.org>,
Anushree Mathur <anushree.mathur@linux.ibm.com>,
Venkat Rao Bagalkote <venkat88@linux.ibm.com>,
Harsh Prateek Bora <harshpb@linux.ibm.com>,
Madhavan Srinivasan <maddy@linux.ibm.com>,
Shrikanth Hegde <sshegde@linux.ibm.com>,
linux-kernel@vger.kernel.org,
"Ritesh Harjani (IBM)" <ritesh.list@gmail.com>
Subject: [PATCH v7 7/8] KVM: selftests: Only warn for idle-page checks on powerpc pseries LPAR
Date: Tue, 6 Oct 2026 15:58:41 +0530 [thread overview]
Message-ID: <0227000da4e6fe69b278dc971b74b3f65b73ead9.1791280439.git.ritesh.list@gmail.com> (raw)
In-Reply-To: <cover.1791280439.git.ritesh.list@gmail.com>
Same nested TLB/access bit issue like 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>
---
tools/testing/selftests/kvm/Makefile.kvm | 1 +
.../testing/selftests/kvm/access_tracking_perf_test.c | 10 ++++++++++
2 files changed, 11 insertions(+)
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.
--
2.39.5
next prev parent reply other threads:[~2026-10-06 10:30 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-10-06 10:28 [PATCH v7 0/8] KVM: selftests: add powerpc support Ritesh Harjani (IBM)
2026-10-06 10:28 ` [PATCH v7 1/8] KVM: selftests: Don't limit LE dirty-bitmap bitops to s390x Ritesh Harjani (IBM)
2026-10-06 10:28 ` [PATCH v7 2/8] KVM: selftests: Move memslot_perf_test off the 256M ELF load address Ritesh Harjani (IBM)
2026-10-06 10:28 ` [PATCH v7 3/8] KVM: selftests: Skip the max vCPU ID test when KVM_CAP_PPC_SMT is set Ritesh Harjani (IBM)
2026-10-06 10:28 ` [PATCH v7 4/8] KVM: PPC: selftests: add support for powerpc Ritesh Harjani (IBM)
2026-10-06 10:28 ` [PATCH v7 5/8] KVM: selftests: Add helper for checking if running on powerpc pseries LPAR Ritesh Harjani (IBM)
2026-10-06 10:28 ` [PATCH v7 6/8] KVM: selftests: Skip kvm_create_max_vcpus " Ritesh Harjani (IBM)
2026-10-06 10:28 ` Ritesh Harjani (IBM) [this message]
2026-10-06 10:28 ` [PATCH v7 8/8] KVM: selftests: Skip hardware_disable_test " Ritesh Harjani (IBM)
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=0227000da4e6fe69b278dc971b74b3f65b73ead9.1791280439.git.ritesh.list@gmail.com \
--to=ritesh.list@gmail.com \
--cc=anushree.mathur@linux.ibm.com \
--cc=chleroy@kernel.org \
--cc=harshpb@linux.ibm.com \
--cc=kvm@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linuxppc-dev@lists.ozlabs.org \
--cc=maddy@linux.ibm.com \
--cc=mpe@ellerman.id.au \
--cc=pbonzini@redhat.com \
--cc=seanjc@google.com \
--cc=sshegde@linux.ibm.com \
--cc=venkat88@linux.ibm.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®