]> git.dujemihanovic.xyz Git - linux.git/commit
KVM: VMX: Always honor guest PAT on CPUs that support self-snoop
authorSean Christopherson <seanjc@google.com>
Sat, 9 Mar 2024 01:09:29 +0000 (17:09 -0800)
committerSean Christopherson <seanjc@google.com>
Fri, 7 Jun 2024 14:18:03 +0000 (07:18 -0700)
commit377b2f359d1f71c75f8cc352b5c81f2210312d83
treee552a7308bad09bcf189b0e81983b02ce8a87e94
parent65a4de0ffd975af7e2ffc9acb875b6a8ae7ee1aa
KVM: VMX: Always honor guest PAT on CPUs that support self-snoop

Unconditionally honor guest PAT on CPUs that support self-snoop, as
Intel has confirmed that CPUs that support self-snoop always snoop caches
and store buffers.  I.e. CPUs with self-snoop maintain cache coherency
even in the presence of aliased memtypes, thus there is no need to trust
the guest behaves and only honor PAT as a last resort, as KVM does today.

Honoring guest PAT is desirable for use cases where the guest has access
to non-coherent DMA _without_ bouncing through VFIO, e.g. when a virtual
(mediated, for all intents and purposes) GPU is exposed to the guest, along
with buffers that are consumed directly by the physical GPU, i.e. which
can't be proxied by the host to ensure writes from the guest are performed
with the correct memory type for the GPU.

Cc: Yiwei Zhang <zzyiwei@google.com>
Suggested-by: Yan Zhao <yan.y.zhao@intel.com>
Suggested-by: Kevin Tian <kevin.tian@intel.com>
Tested-by: Xiangfei Ma <xiangfeix.ma@intel.com>
Tested-by: Yongwei Ma <yongwei.ma@intel.com>
Link: https://lore.kernel.org/r/20240309010929.1403984-6-seanjc@google.com
Signed-off-by: Sean Christopherson <seanjc@google.com>
arch/x86/kvm/mmu/mmu.c
arch/x86/kvm/vmx/vmx.c