Re: [patch 5/6] x86/fpu: Provide fpu_update_guest_xcr0/xfd()

From: Paolo Bonzini
Date: Wed Dec 15 2021 - 05:41:32 EST


On 12/15/21 11:27, Paolo Bonzini wrote:
On 12/15/21 11:09, Thomas Gleixner wrote:
Lets assume the restore order is XSTATE, XCR0, XFD:

      XSTATE has everything in init state, which means the default
      buffer is good enough

      XCR0 has everything enabled including AMX, so the buffer is
      expanded

      XFD has AMX disable set, which means the buffer expansion was
      pointless

If we go there, then we can just use a full expanded buffer for KVM
unconditionally and be done with it. That spares a lot of code.

If we decide to use a full expanded buffer as soon as KVM_SET_CPUID2 is done, that would work for me.

Off-list, Thomas mentioned doing it even at vCPU creation as long as the prctl has been called. That is also okay and even simpler.

There's also another important thing that hasn't been mentioned so far: KVM_GET_SUPPORTED_CPUID should _not_ include the dynamic bits in CPUID[0xD] if they have not been requested with prctl. It's okay to return the AMX bit, but not the bit in CPUID[0xD].

Paolo