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