Re: [PATCH v5 07/17] KVM: x86: add fields to struct kvm_arch for CoCo features

From: Edgecombe, Rick P
Date: Tue May 07 2024 - 21:20:06 EST


On Tue, 2024-05-07 at 17:21 -0700, Sean Christopherson wrote:
> > Can you elaborate on the reason for a per-memslot flag? We are discussing
> > this
> > design point internally, and also the intersection with the previous
> > attempts to
> > do something similar with a per-vm flag[0].
> >
> > I'm wondering if the intention is to try to make a memslot flag, so it can
> > be
> > expanded for the normal VM usage.
>
> Sure, I'll go with that answer.  Like I said, off-the-cuff.
>
> There's no concrete motiviation, it's more that _if_ we're going to expose a
> knob
> to userspace, then I'd prefer to make it as precise as possible to minimize
> the
> changes of KVM ending up back in ABI hell again.
>
> > Because the discussion on the original attempts, it seems safer to keep this
> > behavior more limited (TDX only) for now.  And for TDX's usage a struct kvm
> > bool fits best because all memslots need to be set to zap_leafs_only = true,
> > anyway.
>
> No they don't.  They might be set that way in practice for QEMU, but it's not
> strictly required.  E.g. nothing would prevent a VMM from exposing a shared-
> only
> memslot to a guest.  The memslots that burned KVM the first time around were
> related to VFIO devices, and I wouldn't put it past someone to be crazy enough
> to expose an passhtrough an untrusted device to a TDX guest.

Ok, thanks for clarification. So it's more of a strategic thing to move more
zapping logic into userspace so the logic can change without introducing kernel
regressions.