[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH v5 02/10] target/i386: disable PERFCORE when "-pmu" is configured
From: |
Dongli Zhang |
Subject: |
[PATCH v5 02/10] target/i386: disable PERFCORE when "-pmu" is configured |
Date: |
Fri, 25 Apr 2025 14:29:59 -0700 |
Currently, AMD PMU support isn't determined based on CPUID, that is, the
"-pmu" option does not fully disable KVM AMD PMU virtualization.
To minimize AMD PMU features, remove PERFCORE when "-pmu" is configured.
To completely disable AMD PMU virtualization will be implemented via
KVM_CAP_PMU_CAPABILITY in upcoming patches.
As a reminder, neither CPUID_EXT3_PERFCORE nor
CPUID_8000_0022_EAX_PERFMON_V2 is removed from env->features[] when "-pmu"
is configured. Developers should query whether they are supported via
cpu_x86_cpuid() rather than relying on env->features[] in future patches.
Suggested-by: Zhao Liu <zhao1.liu@intel.com>
Signed-off-by: Dongli Zhang <dongli.zhang@oracle.com>
Reviewed-by: Zhao Liu <zhao1.liu@intel.com>
Reviewed-by: Sandipan Das <sandipan.das@amd.com>
---
Changed since v2:
- No need to check "kvm_enabled() && IS_AMD_CPU(env)".
Changed since v4:
- Add Reviewed-by from Sandipan.
target/i386/cpu.c | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/target/i386/cpu.c b/target/i386/cpu.c
index b4d9ac032b..4faae503bd 100644
--- a/target/i386/cpu.c
+++ b/target/i386/cpu.c
@@ -7256,6 +7256,10 @@ void cpu_x86_cpuid(CPUX86State *env, uint32_t index,
uint32_t count,
!(env->hflags & HF_LMA_MASK)) {
*edx &= ~CPUID_EXT2_SYSCALL;
}
+
+ if (!cpu->enable_pmu) {
+ *ecx &= ~CPUID_EXT3_PERFCORE;
+ }
break;
case 0x80000002:
case 0x80000003:
--
2.39.3
- [PATCH v5 00/10] target/i386/kvm/pmu: PMU Enhancement, Bugfix and Cleanup, Dongli Zhang, 2025/04/25
- [PATCH v5 04/10] target/i386/kvm: set KVM_PMU_CAP_DISABLE if "-pmu" is configured, Dongli Zhang, 2025/04/25
- [PATCH v5 03/10] kvm: Introduce kvm_arch_pre_create_vcpu(), Dongli Zhang, 2025/04/25
- [PATCH v5 01/10] target/i386: disable PerfMonV2 when PERFCORE unavailable, Dongli Zhang, 2025/04/25
- [PATCH v5 09/10] target/i386/kvm: support perfmon-v2 for reset, Dongli Zhang, 2025/04/25
- [PATCH v5 05/10] target/i386/kvm: extract unrelated code out of kvm_x86_build_cpuid(), Dongli Zhang, 2025/04/25
- [PATCH v5 08/10] target/i386/kvm: reset AMD PMU registers during VM reset, Dongli Zhang, 2025/04/25
- [PATCH v5 10/10] target/i386/kvm: don't stop Intel PMU counters, Dongli Zhang, 2025/04/25
- [PATCH v5 07/10] target/i386/kvm: query kvm.enable_pmu parameter, Dongli Zhang, 2025/04/25
- [PATCH v5 02/10] target/i386: disable PERFCORE when "-pmu" is configured,
Dongli Zhang <=
- [PATCH v5 06/10] target/i386/kvm: rename architectural PMU variables, Dongli Zhang, 2025/04/25