On Sat, Mar 02, 2024 at 11:19:35AM +0000, Marc Zyngier wrote: > In retrospect, it is fairly obvious that the FP state ownership > is only meaningful for a given CPU, and that locating this > information in the vcpu was just a mistake. > > Move the ownership tracking into the host data structure, and > rename it from fp_state to fp_owner, which is a better description > (name suggested by Mark Brown). The SME patch series proposes adding an additional state to this enumeration which would say if the registers are stored in a format suitable for exchange with userspace, that would make this state part of the vCPU state. With the addition of SME we can have two vector lengths in play so the series proposes picking the larger to be the format for userspace registers. We could store this separately to fp_state/owner but it'd still be a value stored in the vCPU. Storing in a format suitable for userspace usage all the time when we've got SME would most likely result in performance overhead if nothing else and feels more complicated than rewriting the data in the relatively unusual case where userspace looks at it. Trying to convert userspace writes into the current layout would have issues if the current layout uses the smaller vector length and create fragility with ordering issues when loading the guest state. The proposal is not the most lovely idea ever but given the architecture I think some degree of clunkiness would be unavoidable.
Attachment:
signature.asc
Description: PGP signature