| From 48483717b4e3f3dea5dd69d9472aeec3516918f3 Mon Sep 17 00:00:00 2001 |
| From: Sasha Levin <sashal@kernel.org> |
| Date: Mon, 28 Jun 2021 15:43:54 +0800 |
| Subject: KVM: x86/pmu: Clear anythread deprecated bit when 0xa leaf is |
| unsupported on the SVM |
| |
| From: Like Xu <like.xu.linux@gmail.com> |
| |
| [ Upstream commit 7234c362ccb3c2228f06f19f93b132de9cfa7ae4 ] |
| |
| The AMD platform does not support the functions Ah CPUID leaf. The returned |
| results for this entry should all remain zero just like the native does: |
| |
| AMD host: |
| 0x0000000a 0x00: eax=0x00000000 ebx=0x00000000 ecx=0x00000000 edx=0x00000000 |
| (uncanny) AMD guest: |
| 0x0000000a 0x00: eax=0x00000000 ebx=0x00000000 ecx=0x00000000 edx=0x00008000 |
| |
| Fixes: cadbaa039b99 ("perf/x86/intel: Make anythread filter support conditional") |
| Signed-off-by: Like Xu <likexu@tencent.com> |
| Message-Id: <20210628074354.33848-1-likexu@tencent.com> |
| Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> |
| Signed-off-by: Sasha Levin <sashal@kernel.org> |
| --- |
| arch/x86/kvm/cpuid.c | 3 ++- |
| 1 file changed, 2 insertions(+), 1 deletion(-) |
| |
| diff --git a/arch/x86/kvm/cpuid.c b/arch/x86/kvm/cpuid.c |
| index ca7866d63e98..739be5da3bca 100644 |
| --- a/arch/x86/kvm/cpuid.c |
| +++ b/arch/x86/kvm/cpuid.c |
| @@ -765,7 +765,8 @@ static inline int __do_cpuid_func(struct kvm_cpuid_array *array, u32 function) |
| |
| edx.split.num_counters_fixed = min(cap.num_counters_fixed, MAX_FIXED_COUNTERS); |
| edx.split.bit_width_fixed = cap.bit_width_fixed; |
| - edx.split.anythread_deprecated = 1; |
| + if (cap.version) |
| + edx.split.anythread_deprecated = 1; |
| edx.split.reserved1 = 0; |
| edx.split.reserved2 = 0; |
| |
| -- |
| 2.30.2 |
| |