[PATCH v5 32/44] KVM: x86/pmu: Disable interception of select PMU MSRs for mediated vPMUs

Mi, Dapeng dapeng1.mi at linux.intel.com
Wed Oct 15 17:04:26 PDT 2025


On 10/16/2025 2:48 AM, Sean Christopherson wrote:
> On Thu, Oct 09, 2025, Dapeng Mi wrote:
>> On 10/2/2025 2:14 AM, Sean Christopherson wrote:
>>> On Fri, Sep 26, 2025, Sandipan Das wrote:
>>>> On 8/7/2025 1:26 AM, Sean Christopherson wrote:
>>>>> +	return kvm_need_perf_global_ctrl_intercept(vcpu) ||
>>>>>  	       pmu->counter_bitmask[KVM_PMC_GP] != (BIT_ULL(kvm_host_pmu.bit_width_gp) - 1) ||
>>>>>  	       pmu->counter_bitmask[KVM_PMC_FIXED] != (BIT_ULL(kvm_host_pmu.bit_width_fixed) - 1);
>>>>>  }
>>>> There is a case for AMD processors where the global MSRs are absent in the guest
>>>> but the guest still uses the same number of counters as what is advertised by the
>>>> host capabilities. So RDPMC interception is not necessary for all cases where
>>>> global control is unavailable.o
>>> Hmm, I think Intel would be the same?  Ah, no, because the host will have fixed
>>> counters, but the guest will not.  However, that's not directly related to
>>> kvm_pmu_has_perf_global_ctrl(), so I think this would be correct?
>>>
>>> diff --git a/arch/x86/kvm/pmu.c b/arch/x86/kvm/pmu.c
>>> index 4414d070c4f9..4c5b2712ee4c 100644
>>> --- a/arch/x86/kvm/pmu.c
>>> +++ b/arch/x86/kvm/pmu.c
>>> @@ -744,16 +744,13 @@ int kvm_pmu_rdpmc(struct kvm_vcpu *vcpu, unsigned idx, u64 *data)
>>>         return 0;
>>>  }
>>>  
>>> -bool kvm_need_perf_global_ctrl_intercept(struct kvm_vcpu *vcpu)
>>> +static bool kvm_need_pmc_intercept(struct kvm_vcpu *vcpu)
>> The function name kvm_need_pmc_intercept() seems a little bit misleading
>> and make users think this function is used to check if a certain PMC is
>> intercepted. Maybe we can rename the function to kvm_need_global_intercept().
> Yeah, I don't love kvm_need_pmc_intercept() either.  But kvm_need_global_intercept()
> feels too close to kvm_need_perf_global_ctrl_intercept().
>
> Maybe something like kvm_need_any_pmc_intercept()?

It sounds good to me. Thanks.





More information about the kvm-riscv mailing list