Re: [PATCH] KVM: selftests: get-reg-list: Add KVM_REG_ARM_FW_REG(3)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



+Paolo

On Wed, 16 Mar 2022 12:51:29 +0000,
Andrew Jones <drjones@xxxxxxxxxx> wrote:
> 
> When testing a kernel with commit a5905d6af492 ("KVM: arm64:
> Allow SMCCC_ARCH_WORKAROUND_3 to be discovered and migrated")
> get-reg-list output
> 
> vregs: Number blessed registers:   234
> vregs: Number registers:           238
> 
> vregs: There are 1 new registers.
> Consider adding them to the blessed reg list with the following lines:
> 
> 	KVM_REG_ARM_FW_REG(3),
> 
> vregs: PASS
> ...
> 
> That output inspired two changes: 1) add the new register to the
> blessed list and 2) explain why "Number registers" is actually four
> larger than "Number blessed registers" (on the system used for
> testing), even though only one register is being stated as new.
> The reason is that some registers are host dependent and they get
> filtered out when comparing with the blessed list. The system
> used for the test apparently had three filtered registers.
> 
> Signed-off-by: Andrew Jones <drjones@xxxxxxxxxx>
> ---
>  tools/testing/selftests/kvm/aarch64/get-reg-list.c | 14 ++++++++++----
>  1 file changed, 10 insertions(+), 4 deletions(-)
> 
> diff --git a/tools/testing/selftests/kvm/aarch64/get-reg-list.c b/tools/testing/selftests/kvm/aarch64/get-reg-list.c
> index f769fc6cd927..7efe918ded9e 100644
> --- a/tools/testing/selftests/kvm/aarch64/get-reg-list.c
> +++ b/tools/testing/selftests/kvm/aarch64/get-reg-list.c
> @@ -503,8 +503,13 @@ static void run_test(struct vcpu_config *c)
>  		++missing_regs;
>  
>  	if (new_regs || missing_regs) {
> +		n = 0;
> +		for_each_reg_filtered(i)
> +			++n;
> +
>  		printf("%s: Number blessed registers: %5lld\n", config_name(c), blessed_n);
> -		printf("%s: Number registers:         %5lld\n", config_name(c), reg_list->n);
> +		printf("%s: Number registers:         %5lld (includes %lld filtered registers)\n",
> +		       config_name(c), reg_list->n, reg_list->n - n);
>  	}
>  
>  	if (new_regs) {
> @@ -683,9 +688,10 @@ static __u64 base_regs[] = {
>  	KVM_REG_ARM64 | KVM_REG_SIZE_U64 | KVM_REG_ARM_CORE | KVM_REG_ARM_CORE_REG(spsr[4]),
>  	KVM_REG_ARM64 | KVM_REG_SIZE_U32 | KVM_REG_ARM_CORE | KVM_REG_ARM_CORE_REG(fp_regs.fpsr),
>  	KVM_REG_ARM64 | KVM_REG_SIZE_U32 | KVM_REG_ARM_CORE | KVM_REG_ARM_CORE_REG(fp_regs.fpcr),
> -	KVM_REG_ARM_FW_REG(0),
> -	KVM_REG_ARM_FW_REG(1),
> -	KVM_REG_ARM_FW_REG(2),
> +	KVM_REG_ARM_FW_REG(0),		/* KVM_REG_ARM_PSCI_VERSION */
> +	KVM_REG_ARM_FW_REG(1),		/* KVM_REG_ARM_SMCCC_ARCH_WORKAROUND_1 */
> +	KVM_REG_ARM_FW_REG(2),		/* KVM_REG_ARM_SMCCC_ARCH_WORKAROUND_2 */
> +	KVM_REG_ARM_FW_REG(3),		/* KVM_REG_ARM_SMCCC_ARCH_WORKAROUND_3 */
>  	ARM64_SYS_REG(3, 3, 14, 3, 1),	/* CNTV_CTL_EL0 */
>  	ARM64_SYS_REG(3, 3, 14, 3, 2),	/* CNTV_CVAL_EL0 */
>  	ARM64_SYS_REG(3, 3, 14, 0, 2),

Acked-by: Marc Zyngier <maz@xxxxxxxxxx>

Paolo, I don't have anything pending for 5.17, so feel free to take it
directly into Linus' tree.

Thanks,

	M.

-- 
Without deviation from the norm, progress is not possible.
_______________________________________________
kvmarm mailing list
kvmarm@xxxxxxxxxxxxxxxxxxxxx
https://lists.cs.columbia.edu/mailman/listinfo/kvmarm



[Index of Archives]     [Linux KVM]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux