Re: [PATCH RFC 3/7] kvm: x86: XSAVE state and XFD MSRs context switch

From: Paolo Bonzini
Date: Mon Feb 08 2021 - 05:38:51 EST


On 07/02/21 16:42, Jing Liu wrote:
|In KVM, "guest_fpu" serves for any guest task working on this vcpu during vmexit and vmenter. We provide a pre-allocated guest_fpu space and entire "guest_fpu.state_mask" to avoid each dynamic features detection on each vcpu task. Meanwhile, to ensure correctly xsaves/xrstors guest state, set IA32_XFD as zero during vmexit and vmenter.|

Most guests will not need the whole xstate feature set. So perhaps you could set XFD to the host value | the guest value, trap #NM if the host XFD is zero, and possibly reflect the exception to the guest's XFD and XFD_ERR.

In addition, loading the guest XFD MSRs should use the MSR autoload feature (add_atomic_switch_msr).

Paolo