Re: [PATCH 08/16] KVM: x86/mmu: Bug the VM if kvm_zap_gfn_range() is called for TDX

From: Edgecombe, Rick P
Date: Thu May 16 2024 - 18:38:39 EST


On Fri, 2024-05-17 at 10:23 +1200, Huang, Kai wrote:
> On 17/05/2024 9:46 am, Edgecombe, Rick P wrote:
> > On Tue, 2024-05-14 at 17:59 -0700, Rick Edgecombe wrote:
> > >
> > > For lack of a better method currently, use kvm_gfn_shared_mask() to
> > > determine if private memory cannot be zapped (as in TDX, the only VM type
> > > that sets it).
> >
> > Trying to replace kvm_gfn_shared_mask() with something appropriate, I saw
> > that
> > SNP actually uses this function:
> > https://lore.kernel.org/kvm/20240501085210.2213060-12-michael.roth@xxxxxxx/
> >
> > So trying to have a helper that says "The VM can't zap and refault in memory
> > at
> > will" won't cut it. I guess there would have to be some more specific. I'm
> > thinking to just drop this patch instead.
>
> Or KVM_BUG_ON() in the callers by explicitly checking VM type being TDX
> as I mentioned before.
>
> Having such checking in a generic function like this is just dangerous
> and not flexible.
>
> Just my 2 cents, though.

As I said before, the point is to catch new callers. I see how it's a little
wrong to assume the intentions of the callers, but I don't see how it's
dangerous. Can you explain?

But you just reminded me that, yes, we can probably just check the vm_type here:
https://lore.kernel.org/kvm/f64c7da52a849cd9697b944769c200dfa3ee7db7.camel@xxxxxxxxx/