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(-)
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
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
© 2016 - 2026 Red Hat, Inc.