Message ID | 20230214050757.9623-8-likexu@tencent.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | KVM: x86: Add AMD Guest PerfMonV2 PMU support | expand |
KVM: x86: Explicitly zero cpuid "0xa" leaf when PMU is disabled On Tue, Feb 14, 2023, Like Xu wrote: > From: Like Xu <likexu@tencent.com> > > Add an explicit !enable_pmu check as relying on kvm_pmu_cap to be > zeroed isn't obvious. Although when !enable_pmu, KVM will have > zero-padded kvm_pmu_cap to do subsequent cpuid leaf assignments, > one extra branch instruction saves a few subsequent zero-assignment > instructions, speeding things up a bit. Drop the performance blurb, as I stated multiple times, optimizing this code is a non-goal.
diff --git a/arch/x86/kvm/cpuid.c b/arch/x86/kvm/cpuid.c index 2a9f1e200dbc..b0bb5f9f5307 100644 --- a/arch/x86/kvm/cpuid.c +++ b/arch/x86/kvm/cpuid.c @@ -944,7 +944,7 @@ static inline int __do_cpuid_func(struct kvm_cpuid_array *array, u32 function) union cpuid10_eax eax; union cpuid10_edx edx; - if (!static_cpu_has(X86_FEATURE_ARCH_PERFMON)) { + if (!enable_pmu || !static_cpu_has(X86_FEATURE_ARCH_PERFMON)) { entry->eax = entry->ebx = entry->ecx = entry->edx = 0; break; }