[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <b57fd626-ab0f-492b-b3fa-c6d8d692455f@linux.intel.com>
Date: Wed, 6 Aug 2025 15:28:56 +0800
From: "Mi, Dapeng" <dapeng1.mi@...ux.intel.com>
To: Sean Christopherson <seanjc@...gle.com>,
Paolo Bonzini <pbonzini@...hat.com>
Cc: kvm@...r.kernel.org, linux-kernel@...r.kernel.org, Xin Li
<xin@...or.com>, Sandipan Das <sandipan.das@....com>
Subject: Re: [PATCH 12/18] KVM: x86/pmu: Rename pmc_speculative_in_use() to
pmc_is_locally_enabled()
On 8/6/2025 3:05 AM, Sean Christopherson wrote:
> Rename pmc_speculative_in_use() to pmc_is_locally_enabled() to better
> capture what it actually tracks, and to show its relationship to
> pmc_is_globally_enabled(). While neither AMD nor Intel refer to event
> selectors or the fixed counter control MSR as "local", it's the obvious
> name to pair with "global".
>
> As for "speculative", there's absolutely nothing speculative about the
> checks. E.g. for PMUs without PERF_GLOBAL_CTRL, from the guest's
> perspective, the counters are "in use" without any qualifications.
>
> No functional change intended.
>
> Signed-off-by: Sean Christopherson <seanjc@...gle.com>
> ---
> arch/x86/kvm/pmu.c | 6 +++---
> arch/x86/kvm/pmu.h | 2 +-
> arch/x86/kvm/vmx/pmu_intel.c | 2 +-
> 3 files changed, 5 insertions(+), 5 deletions(-)
>
> diff --git a/arch/x86/kvm/pmu.c b/arch/x86/kvm/pmu.c
> index b0f0275a2c2e..e73c2a44028b 100644
> --- a/arch/x86/kvm/pmu.c
> +++ b/arch/x86/kvm/pmu.c
> @@ -493,7 +493,7 @@ static bool check_pmu_event_filter(struct kvm_pmc *pmc)
>
> static bool pmc_event_is_allowed(struct kvm_pmc *pmc)
> {
> - return pmc_is_globally_enabled(pmc) && pmc_speculative_in_use(pmc) &&
> + return pmc_is_globally_enabled(pmc) && pmc_is_locally_enabled(pmc) &&
> check_pmu_event_filter(pmc);
> }
>
> @@ -572,7 +572,7 @@ void kvm_pmu_recalc_pmc_emulation(struct kvm_pmu *pmu, struct kvm_pmc *pmc)
> * omitting a PMC from a bitmap could result in a missed event if the
> * filter is changed to allow counting the event.
> */
> - if (!pmc_speculative_in_use(pmc))
> + if (!pmc_is_locally_enabled(pmc))
> return;
>
> if (pmc_is_event_match(pmc, kvm_pmu_eventsel.INSTRUCTIONS_RETIRED))
> @@ -907,7 +907,7 @@ void kvm_pmu_cleanup(struct kvm_vcpu *vcpu)
> pmu->pmc_in_use, X86_PMC_IDX_MAX);
>
> kvm_for_each_pmc(pmu, pmc, i, bitmask) {
> - if (pmc->perf_event && !pmc_speculative_in_use(pmc))
> + if (pmc->perf_event && !pmc_is_locally_enabled(pmc))
> pmc_stop_counter(pmc);
> }
>
> diff --git a/arch/x86/kvm/pmu.h b/arch/x86/kvm/pmu.h
> index cb93a936a177..08ae644db00e 100644
> --- a/arch/x86/kvm/pmu.h
> +++ b/arch/x86/kvm/pmu.h
> @@ -160,7 +160,7 @@ static inline struct kvm_pmc *get_fixed_pmc(struct kvm_pmu *pmu, u32 msr)
> return NULL;
> }
>
> -static inline bool pmc_speculative_in_use(struct kvm_pmc *pmc)
> +static inline bool pmc_is_locally_enabled(struct kvm_pmc *pmc)
> {
> struct kvm_pmu *pmu = pmc_to_pmu(pmc);
>
> diff --git a/arch/x86/kvm/vmx/pmu_intel.c b/arch/x86/kvm/vmx/pmu_intel.c
> index 0b173602821b..07baff96300f 100644
> --- a/arch/x86/kvm/vmx/pmu_intel.c
> +++ b/arch/x86/kvm/vmx/pmu_intel.c
> @@ -762,7 +762,7 @@ void intel_pmu_cross_mapped_check(struct kvm_pmu *pmu)
> int bit, hw_idx;
>
> kvm_for_each_pmc(pmu, pmc, bit, (unsigned long *)&pmu->global_ctrl) {
> - if (!pmc_speculative_in_use(pmc) ||
> + if (!pmc_is_locally_enabled(pmc) ||
> !pmc_is_globally_enabled(pmc) || !pmc->perf_event)
> continue;
>
Reviewed-by: Dapeng Mi <dapeng1.mi@...ux.intel.com>
Powered by blists - more mailing lists