On Wed, Oct 04, 2023 at 07:51:17AM -0700, Sean Christopherson wrote:
KVM's ABI has no formal notion of guest boot=>shutdown or live migration. The myriad KVM_GET_* APIs allow taking a snapshot of guest state, and the KVM_SET_* APIs allow loading a snapshot of guest state. Live migration is probably the most common use of those APIs, but there are other use cases.
I think the lightbulb just clicked, it is really this:
No, the VM will not have less features, because KVM_SET_XSAVE loads *data*, not features [...]
I think I'm conflating the data vs. features aspect here and will have to revisit my understanding of the code...
Ultimately, this problem is not really fixable if said features cannot be removed.
It's not about removing features. The change you're asking for is to have KVM *silently* drop data. Aside from the fact that such a change would break KVM's ABI, silently ignoring data that userspace has explicitly requested be loaded for a vCPU is incredibly dangerous.
Sorry if it came off that way - I fully understand and am resigned to the "you break it, you keep both halves" nature of what I had initially proposed and that it is not a generally tractable solution.
That being said, I genuinely appreciate your jump to action on this problem!
Thanks, Tyler