> From: Paolo Bonzini > Sent: Wednesday, December 15, 2021 6:41 PM > > 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. Make sense. It also avoids the #GP thing in the emulation path if just due to reallocation error. We'll follow this direction to do a quick update/test. > > 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]. > will do. Thanks Kevin