linux/Documentation/virt
Sean Christopherson e1548088ff KVM: VMX: Drop support for forcing UC memory when guest CR0.CD=1
Drop KVM's emulation of CR0.CD=1 on Intel CPUs now that KVM no longer
honors guest MTRR memtypes, as forcing UC memory for VMs with
non-coherent DMA only makes sense if the guest is using something other
than PAT to configure the memtype for the DMA region.

Furthermore, KVM has forced WB memory for CR0.CD=1 since commit
fb279950ba ("KVM: vmx: obey KVM_QUIRK_CD_NW_CLEARED"), and no known
VMM in existence disables KVM_X86_QUIRK_CD_NW_CLEARED, let alone does
so with non-coherent DMA.

Lastly, commit fb279950ba ("KVM: vmx: obey KVM_QUIRK_CD_NW_CLEARED") was
from the same author as commit b18d5431ac ("KVM: x86: fix CR0.CD
virtualization"), and followed by a mere month.  I.e. forcing UC memory
was likely the result of code inspection or perhaps misdiagnosed failures,
and not the necessitate by a concrete use case.

Update KVM's documentation to note that KVM_X86_QUIRK_CD_NW_CLEARED is now
AMD-only, and to take an erratum for lack of CR0.CD virtualization on
Intel.

Tested-by: Xiangfei Ma <xiangfeix.ma@intel.com>
Tested-by: Yongwei Ma <yongwei.ma@intel.com>
Link: https://lore.kernel.org/r/20240309010929.1403984-3-seanjc@google.com
Signed-off-by: Sean Christopherson <seanjc@google.com>
2024-06-05 08:13:14 -07:00
..
acrn docs: acrn: Introduce ACRN 2021-02-09 10:58:18 +01:00
coco Documentation: virt: Fix up pre-formatted text block for SEV ioctls 2024-02-02 17:21:22 +01:00
hyperv Documentation: hyperv: Add overview of PCI pass-thru device support 2024-03-01 08:29:49 +00:00
kvm KVM: VMX: Drop support for forcing UC memory when guest CR0.CD=1 2024-06-05 08:13:14 -07:00
uml Documentation: Fix typos 2023-08-18 11:29:03 -06:00
guest-halt-polling.rst Documentation: virt: correct location of haltpoll module params 2023-06-16 08:17:21 -06:00
index.rst Docs/subsystem-apis: Remove '[The ]Linux' prefixes from titles of listed documents 2023-01-24 15:27:08 -07:00
ne_overview.rst nitro_enclaves: Update documentation for Arm64 support 2021-09-14 11:11:20 +02:00
paravirt_ops.rst Documentation: virt: Clean up paravirt_ops doc 2023-06-19 12:09:54 +02:00