Re: [PATCH v2 03/16] KVM: x86: Always use non-compat vcpu_runstate_info size for gfn=>pfn cache

From: Sean Christopherson
Date: Thu Oct 27 2022 - 11:13:53 EST


On Thu, Oct 27, 2022, Paolo Bonzini wrote:
> On 10/27/22 16:44, Sean Christopherson wrote:
> > > - long mode cannot be changed after the shared info page is enabled (which
> > > makes sense because the shared info page also has a compat version)
> >
> > How is this not introducing an additional restriction? This seems way more
> > onerous than what is effectively a revert.
> >
> > > - the caches must be activated after the shared info page (which enforces
> > > that the vCPU attributes are set after the VM attributes)
> > >
> > > This is technically a userspace API break, but nobody is really using this
> > > API outside Amazon so... Patches coming after I finish testing.
> >
> > It's not just userspace break, it affects the guest ABI as well.
>
> Yes, I was talking of the VMM here; additional restrictions are fine there.

Additional restrictions are fine where?

> The guests however should be compatible with Xen, so you also need to
> re-activate the cache after the hypercall page is written, but that's two
> lines of code.

And do what if the guest transitions from 32-bit => 64-bit and the cache isn't
aligned for 64-bit? E.g. kvm_xen_set_evtchn() will silently drop events no matter
what KVM does. In other words, I don't see how KVM can provide a same ABI without
forcing the cached pages to be aligned for the largets possible size.