diff mbox series

KVM: arm64: selftests: Request PMU feature in get-reg-list

Message ID 20210513130655.73154-1-gshan@redhat.com (mailing list archive)
State New, archived
Headers show
Series KVM: arm64: selftests: Request PMU feature in get-reg-list | expand

Commit Message

Gavin Shan May 13, 2021, 1:06 p.m. UTC
Since the following commit, PMU registers are hidden from user until
it's explicitly requested by feeding feature (KVM_ARM_VCPU_PMU_V3).
Otherwise, 74 missing PMU registers are missing as the following
log indicates.

   11663111cd49 ("KVM: arm64: Hide PMU registers from userspace when not available")

   # ./get-reg-list
   Number blessed registers:   308
   Number registers:           238

   There are 74 missing registers.
   The following lines are missing registers:

      	ARM64_SYS_REG(3, 0, 9, 14, 1),
	ARM64_SYS_REG(3, 0, 9, 14, 2),
             :
	ARM64_SYS_REG(3, 3, 14, 15, 7),

This fixes the issue of wrongly reported missing PMU registers by
requesting it explicitly.

Signed-off-by: Gavin Shan <gshan@redhat.com>
---
 tools/testing/selftests/kvm/aarch64/get-reg-list.c | 2 ++
 1 file changed, 2 insertions(+)

Comments

Marc Zyngier May 13, 2021, 11:14 a.m. UTC | #1
On 2021-05-13 14:06, Gavin Shan wrote:
> Since the following commit, PMU registers are hidden from user until
> it's explicitly requested by feeding feature (KVM_ARM_VCPU_PMU_V3).
> Otherwise, 74 missing PMU registers are missing as the following
> log indicates.
> 
>    11663111cd49 ("KVM: arm64: Hide PMU registers from userspace when
> not available")
> 
>    # ./get-reg-list
>    Number blessed registers:   308
>    Number registers:           238
> 
>    There are 74 missing registers.
>    The following lines are missing registers:
> 
>       	ARM64_SYS_REG(3, 0, 9, 14, 1),
> 	ARM64_SYS_REG(3, 0, 9, 14, 2),
>              :
> 	ARM64_SYS_REG(3, 3, 14, 15, 7),
> 
> This fixes the issue of wrongly reported missing PMU registers by
> requesting it explicitly.
> 
> Signed-off-by: Gavin Shan <gshan@redhat.com>
> ---
>  tools/testing/selftests/kvm/aarch64/get-reg-list.c | 2 ++
>  1 file changed, 2 insertions(+)
> 
> diff --git a/tools/testing/selftests/kvm/aarch64/get-reg-list.c
> b/tools/testing/selftests/kvm/aarch64/get-reg-list.c
> index 486932164cf2..6c6bdc6f5dc3 100644
> --- a/tools/testing/selftests/kvm/aarch64/get-reg-list.c
> +++ b/tools/testing/selftests/kvm/aarch64/get-reg-list.c
> @@ -314,6 +314,8 @@ static void core_reg_fixup(void)
> 
>  static void prepare_vcpu_init(struct kvm_vcpu_init *init)
>  {
> +	init->features[0] |= 1 << KVM_ARM_VCPU_PMU_V3;
> +
>  	if (reg_list_sve())
>  		init->features[0] |= 1 << KVM_ARM_VCPU_SVE;
>  }

Please see Andrew's series[1], which actually deals with options.

         M.

[1] https://lore.kernel.org/r/20210507200416.198055-1-drjones@redhat.com
Gavin Shan May 13, 2021, 1:20 p.m. UTC | #2
On 5/13/21 9:14 PM, Marc Zyngier wrote:
> On 2021-05-13 14:06, Gavin Shan wrote:
>> Since the following commit, PMU registers are hidden from user until
>> it's explicitly requested by feeding feature (KVM_ARM_VCPU_PMU_V3).
>> Otherwise, 74 missing PMU registers are missing as the following
>> log indicates.
>>
>>    11663111cd49 ("KVM: arm64: Hide PMU registers from userspace when
>> not available")
>>
>>    # ./get-reg-list
>>    Number blessed registers:   308
>>    Number registers:           238
>>
>>    There are 74 missing registers.
>>    The following lines are missing registers:
>>
>>           ARM64_SYS_REG(3, 0, 9, 14, 1),
>>     ARM64_SYS_REG(3, 0, 9, 14, 2),
>>              :
>>     ARM64_SYS_REG(3, 3, 14, 15, 7),
>>
>> This fixes the issue of wrongly reported missing PMU registers by
>> requesting it explicitly.
>>
>> Signed-off-by: Gavin Shan <gshan@redhat.com>
>> ---
>>  tools/testing/selftests/kvm/aarch64/get-reg-list.c | 2 ++
>>  1 file changed, 2 insertions(+)
>>
>> diff --git a/tools/testing/selftests/kvm/aarch64/get-reg-list.c
>> b/tools/testing/selftests/kvm/aarch64/get-reg-list.c
>> index 486932164cf2..6c6bdc6f5dc3 100644
>> --- a/tools/testing/selftests/kvm/aarch64/get-reg-list.c
>> +++ b/tools/testing/selftests/kvm/aarch64/get-reg-list.c
>> @@ -314,6 +314,8 @@ static void core_reg_fixup(void)
>>
>>  static void prepare_vcpu_init(struct kvm_vcpu_init *init)
>>  {
>> +    init->features[0] |= 1 << KVM_ARM_VCPU_PMU_V3;
>> +
>>      if (reg_list_sve())
>>          init->features[0] |= 1 << KVM_ARM_VCPU_SVE;
>>  }
> 
> Please see Andrew's series[1], which actually deals with options.
> 
>          M.
> 
> [1] https://lore.kernel.org/r/20210507200416.198055-1-drjones@redhat.com
>

Thanks, Marc. Yes, Drew's series already had the fix.
Sorry about the noise and please ignore this.

Thanks,
Gavin
diff mbox series

Patch

diff --git a/tools/testing/selftests/kvm/aarch64/get-reg-list.c b/tools/testing/selftests/kvm/aarch64/get-reg-list.c
index 486932164cf2..6c6bdc6f5dc3 100644
--- a/tools/testing/selftests/kvm/aarch64/get-reg-list.c
+++ b/tools/testing/selftests/kvm/aarch64/get-reg-list.c
@@ -314,6 +314,8 @@  static void core_reg_fixup(void)
 
 static void prepare_vcpu_init(struct kvm_vcpu_init *init)
 {
+	init->features[0] |= 1 << KVM_ARM_VCPU_PMU_V3;
+
 	if (reg_list_sve())
 		init->features[0] |= 1 << KVM_ARM_VCPU_SVE;
 }