Re: [PATCH] KVM: x86/mmu: Only zap valid non-mirror roots in kvm_zap_gfn_range()

From: Paolo Bonzini
Date: Sun Dec 22 2024 - 14:29:30 EST


On Fri, Nov 15, 2024 at 9:50 AM Yan Zhao <yan.y.zhao@xxxxxxxxx> wrote:
> Sean also suggested making the self-snoop feature a hard dependency for
> enabling TDX [2].
>
> That is because
> - TDX shared EPT is able to reuse the memory type specified in VMX's code
> as long as guest MTRRs are not referenced.
> - KVM does not call kvm_zap_gfn_range() when attaching/detaching
> non-coherent DMA devices when the CPU have feature self-snoop. [3]
>
> However, [3] cannot be guaranteed after commit 9d70f3fec144 ("Revert "KVM:
> VMX: Always honor guest PAT on CPUs that support self-snoop"), which was
> due to a regression with the bochsdrm driver.

I think we should treat honoring of guest PAT like zap-memslot-only,
and make it a quirk that TDX disables. Making it a quirk adds a bit of
complexity, but it documents why the code exists and it makes it easy
for TDX to disable it.

Paolo