Messages in this thread | | | Date | Wed, 26 Nov 2014 18:31:02 +0100 | From | Radim Krčmář <> | Subject | Re: [CFT PATCH v2 2/2] KVM: x86: support XSAVES usage in the host |
| |
2014-11-26 17:26+0100, Paolo Bonzini: > On 26/11/2014 15:42, Radim Krčmář wrote: > >> I'm not sure what is more future proof. :) I wonder if native_xrstor > >> could be a problem the day XRSTORS actually sets/restores MSRs as the > >> processor documentation promises. > > > > XRSTORS won't affect the guest in any way, we are just going to use it > > to convert the xsave, so any side-effects are going to stay in the host. > > (This could break the host though.) > > Yes, that's the problem. :)
(It would be a bug in Linux's xsave API, if we were using it correctly.)
> > My main presumption is that XSAVE*->XRSTOR*->XSAVE->XRSTOR has the same > > result as XSAVE->XRSTOR, because we are only interested in the state, > > not in any metadata. > > (If it isn't possible to combine intructions, like XSAVE after XRSTORS, > > this solution won't work.) > > Yes, that should be right. But actually what KVM would do it is > XRSTOR->XSAVE*->XRSTOR*->XSAVE. The problem here is the side effects of > doing XRSTORS far from a guest entry...
The entry can be aborted after doing XRSTORS, so we are going to know if this doesn't work :)
> though that would likely be > handled by load_guest_fpu/put_guest_fpu.
Yes, I don't see a principal difference between manipulating xsave for vmentry and this conversion, it can be wrapped in the same way.
| |