Message ID | 1618334701-8263-1-git-send-email-igor.druzhinin@citrix.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | x86/vPMU: Extend vPMU support to version 5 | expand |
On 13.04.2021 19:25, Igor Druzhinin wrote: > Version 5 is backwards compatible with version 3. This allows to enable > vPMU on Ice Lake CPUs. > > Signed-off-by: Igor Druzhinin <igor.druzhinin@citrix.com> Acked-by: Jan Beulich <jbeulich@suse.com>
On 14.04.2021 14:28, Jan Beulich wrote: > On 13.04.2021 19:25, Igor Druzhinin wrote: >> Version 5 is backwards compatible with version 3. This allows to enable >> vPMU on Ice Lake CPUs. >> >> Signed-off-by: Igor Druzhinin <igor.druzhinin@citrix.com> > > Acked-by: Jan Beulich <jbeulich@suse.com> Actually I've just noticed that I can't ack this, as the source file is deemed part of VT-x. I wonder whether we should drop this, as it's been quite a while since vPMU code was made HVM-independent. Jan
> From: Igor Druzhinin <igor.druzhinin@citrix.com> > Sent: Wednesday, April 14, 2021 1:25 AM > > Version 5 is backwards compatible with version 3. This allows to enable > vPMU on Ice Lake CPUs. > > Signed-off-by: Igor Druzhinin <igor.druzhinin@citrix.com> Reviewed-by: Kevin Tian <kevin.tian@intel.com> > --- > xen/arch/x86/cpu/vpmu_intel.c | 7 ++++--- > 1 file changed, 4 insertions(+), 3 deletions(-) > > diff --git a/xen/arch/x86/cpu/vpmu_intel.c > b/xen/arch/x86/cpu/vpmu_intel.c > index 6e97ce7..0dfc256 100644 > --- a/xen/arch/x86/cpu/vpmu_intel.c > +++ b/xen/arch/x86/cpu/vpmu_intel.c > @@ -839,7 +839,7 @@ int vmx_vpmu_initialise(struct vcpu *v) > return 0; > > if ( v->domain->arch.cpuid->basic.pmu_version <= 1 || > - v->domain->arch.cpuid->basic.pmu_version >= 5 ) > + v->domain->arch.cpuid->basic.pmu_version >= 6 ) > return -EINVAL; > > if ( (arch_pmc_cnt + fixed_pmc_cnt) == 0 ) > @@ -909,8 +909,9 @@ int __init core2_vpmu_init(void) > switch ( version ) > { > case 4: > - printk(XENLOG_INFO "VPMU: PMU version 4 is not fully supported. " > - "Emulating version 3\n"); > + case 5: > + printk(XENLOG_INFO "VPMU: PMU version %u is not fully supported. " > + "Emulating version 3\n", version); > /* FALLTHROUGH */ > > case 2: > -- > 2.7.4
diff --git a/xen/arch/x86/cpu/vpmu_intel.c b/xen/arch/x86/cpu/vpmu_intel.c index 6e97ce7..0dfc256 100644 --- a/xen/arch/x86/cpu/vpmu_intel.c +++ b/xen/arch/x86/cpu/vpmu_intel.c @@ -839,7 +839,7 @@ int vmx_vpmu_initialise(struct vcpu *v) return 0; if ( v->domain->arch.cpuid->basic.pmu_version <= 1 || - v->domain->arch.cpuid->basic.pmu_version >= 5 ) + v->domain->arch.cpuid->basic.pmu_version >= 6 ) return -EINVAL; if ( (arch_pmc_cnt + fixed_pmc_cnt) == 0 ) @@ -909,8 +909,9 @@ int __init core2_vpmu_init(void) switch ( version ) { case 4: - printk(XENLOG_INFO "VPMU: PMU version 4 is not fully supported. " - "Emulating version 3\n"); + case 5: + printk(XENLOG_INFO "VPMU: PMU version %u is not fully supported. " + "Emulating version 3\n", version); /* FALLTHROUGH */ case 2:
Version 5 is backwards compatible with version 3. This allows to enable vPMU on Ice Lake CPUs. Signed-off-by: Igor Druzhinin <igor.druzhinin@citrix.com> --- xen/arch/x86/cpu/vpmu_intel.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-)