lkml.org 
[lkml]   [2022]   [Nov]   [25]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
SubjectRe: [PATCH v3 1/3] KVM: x86/pmu: Disable guest PEBS on hybird cpu due to heterogeneity
From
Date
Hi Like,

There is a question I would like to ask. As far as I know, Alder Lake uses
a hybrid architecture and the kernel presents two types of PMUs.Can the
events created on the VCPU still count normally if the VCPU thread gets
migrate across different CPUs?

As far as I know, ARM64 big.LITTLE is not working properly, according to
this set of patches.
[PATCH v4 0/6] KVM: arm64: Improve PMU support on heterogeneous systems
https://lore.kernel.org/all/20220127161759.53553-1-alexandru.elisei@arm.com/

Thanks,
Kunkun Jiang

On 2022/11/9 16:28, Like Xu wrote:
> From: Like Xu <likexu@tencent.com>
>
> >From vPMU enabling perspective, KVM does not have proper support for
> hybird x86 core. The reported perf_capabilities value (e.g. the format
> of pebs record) depends on the type of cpu the kvm-intel module is init.
> When a vcpu of one pebs format migrates to a vcpu of another pebs format,
> the incorrect parsing of pebs records by guest can make profiling data
> analysis extremely problematic.
>
> The safe way to fix this is to disable this part of the support until the
> guest recognizes that it is running on the hybird cpu, which is appropriate
> at the moment given that x86 hybrid architectures are not heavily touted
> in the data center market.
>
> Signed-off-by: Like Xu <likexu@tencent.com>
> ---
> arch/x86/kvm/vmx/capabilities.h | 4 +++-
> 1 file changed, 3 insertions(+), 1 deletion(-)
>
> diff --git a/arch/x86/kvm/vmx/capabilities.h b/arch/x86/kvm/vmx/capabilities.h
> index cd2ac9536c99..ea0498684048 100644
> --- a/arch/x86/kvm/vmx/capabilities.h
> +++ b/arch/x86/kvm/vmx/capabilities.h
> @@ -392,7 +392,9 @@ static inline bool vmx_pt_mode_is_host_guest(void)
>
> static inline bool vmx_pebs_supported(void)
> {
> - return boot_cpu_has(X86_FEATURE_PEBS) && kvm_pmu_cap.pebs_ept;
> + return boot_cpu_has(X86_FEATURE_PEBS) &&
> + !boot_cpu_has(X86_FEATURE_HYBRID_CPU) &&
> + kvm_pmu_cap.pebs_ept;
> }
>
> static inline bool cpu_has_notify_vmexit(void)

\
 
 \ /
  Last update: 2022-11-25 11:19    [W:0.119 / U:0.108 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site