Re: [PATCH 6.13 3/8] KVM: arm64: Remove host FPSIMD saving for non-protected KVM

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

 



[ Sasha's backport helper bot ]

Hi,

✅ All tests passed successfully. No issues detected.
No action required from the submitter.

The upstream commit SHA1 provided is correct: 8eca7f6d5100b6997df4f532090bc3f7e0203bef

WARNING: Author mismatch between patch and upstream commit:
Backport author: Mark Brown<broonie@xxxxxxxxxx>
Commit author: Mark Rutland<mark.rutland@xxxxxxx>

Note: The patch differs from the upstream commit:
---
1:  8eca7f6d5100b ! 1:  bbc2654d04d6e KVM: arm64: Remove host FPSIMD saving for non-protected KVM
    @@ Metadata
      ## Commit message ##
         KVM: arm64: Remove host FPSIMD saving for non-protected KVM
     
    +    [ Upstream commit 8eca7f6d5100b6997df4f532090bc3f7e0203bef ]
    +
         Now that the host eagerly saves its own FPSIMD/SVE/SME state,
         non-protected KVM never needs to save the host FPSIMD/SVE/SME state,
         and the code to do this is never used. Protected KVM still needs to
    @@ Commit message
         Reviewed-by: Oliver Upton <oliver.upton@xxxxxxxxx>
         Link: https://lore.kernel.org/r/20250210195226.1215254-3-mark.rutland@xxxxxxx
         Signed-off-by: Marc Zyngier <maz@xxxxxxxxxx>
    +    [CPACR_EL1_ZEN -> CPACR_ELx_ZEN -- broonie]
    +    Signed-off-by: Mark Brown <broonie@xxxxxxxxxx>
     
      ## arch/arm64/include/asm/kvm_host.h ##
     @@ arch/arm64/include/asm/kvm_host.h: struct kvm_host_data {
    @@ arch/arm64/kvm/fpsimd.c: void kvm_arch_vcpu_load_fp(struct kvm_vcpu *vcpu)
     -	*host_data_ptr(fpsimd_state) = NULL;
     -	*host_data_ptr(fpmr_ptr) = NULL;
      
    - 	host_data_clear_flag(HOST_SVE_ENABLED);
    + 	vcpu_clear_flag(vcpu, HOST_SVE_ENABLED);
      	if (read_sysreg(cpacr_el1) & CPACR_EL1_ZEN_EL0EN)
     
      ## arch/arm64/kvm/hyp/include/hyp/switch.h ##
    @@ arch/arm64/kvm/hyp/include/hyp/switch.h: static inline void __hyp_sve_save_host(
     +
     +		/* Re-enable SVE traps if not supported for the guest vcpu. */
     +		if (!vcpu_has_sve(vcpu))
    -+			cpacr_clear_set(CPACR_EL1_ZEN, 0);
    ++			cpacr_clear_set(CPACR_ELx_ZEN, 0);
     +
     +	} else {
     +		__fpsimd_save_state(host_data_ptr(host_ctxt.fp_regs));
    @@ arch/arm64/kvm/hyp/nvhe/switch.c: static bool kvm_handle_pvm_sys64(struct kvm_vc
     -
     -		/* Re-enable SVE traps if not supported for the guest vcpu. */
     -		if (!vcpu_has_sve(vcpu))
    --			cpacr_clear_set(CPACR_EL1_ZEN, 0);
    +-			cpacr_clear_set(CPACR_ELx_ZEN, 0);
     -
     -	} else {
     -		__fpsimd_save_state(*host_data_ptr(fpsimd_state));
---

Results of testing on various branches:

| Branch                    | Patch Apply | Build Test |
|---------------------------|-------------|------------|
| stable/linux-6.13.y       |  Success    |  Success   |




[Index of Archives]     [Linux Kernel]     [Kernel Development Newbies]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Hiking]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux