[PATCH] x86/vPMU: Extend vPMU support to version 5

Igor Druzhinin posted 1 patch 3 years, 7 months ago
Test gitlab-ci passed
Patches applied successfully (tree, apply log)
git fetch https://gitlab.com/xen-project/patchew/xen tags/patchew/1618334701-8263-1-git-send-email-igor.druzhinin@citrix.com
xen/arch/x86/cpu/vpmu_intel.c | 7 ++++---
1 file changed, 4 insertions(+), 3 deletions(-)
[PATCH] x86/vPMU: Extend vPMU support to version 5
Posted by Igor Druzhinin 3 years, 7 months ago
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


Re: [PATCH] x86/vPMU: Extend vPMU support to version 5
Posted by Jan Beulich 3 years, 7 months ago
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>

Re: [PATCH] x86/vPMU: Extend vPMU support to version 5
Posted by Jan Beulich 3 years, 7 months ago
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

RE: [PATCH] x86/vPMU: Extend vPMU support to version 5
Posted by Tian, Kevin 3 years, 7 months ago
> 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