aboutsummaryrefslogtreecommitdiffstats
path: root/rust/helpers/task.c
diff options
context:
space:
mode:
authorIsaku Yamahata <[email protected]>2024-11-12 07:37:20 +0000
committerPaolo Bonzini <[email protected]>2025-03-14 18:20:52 +0000
commit427a6486c51b285ac471434168ce401659b78766 (patch)
treeb460709433ff741d9767b5a00378d62721a1a7fa /rust/helpers/task.c
parentKVM: TDX: Set gfn_direct_bits to shared bit (diff)
downloadkernel-427a6486c51b285ac471434168ce401659b78766.tar.gz
kernel-427a6486c51b285ac471434168ce401659b78766.zip
KVM: TDX: Require TDP MMU, mmio caching and EPT A/D bits for TDX
Disable TDX support when TDP MMU or mmio caching or EPT A/D bits aren't supported. As TDP MMU is becoming main stream than the legacy MMU, the legacy MMU support for TDX isn't implemented. TDX requires KVM mmio caching. Without mmio caching, KVM will go to MMIO emulation without installing SPTEs for MMIOs. However, TDX guest is protected and KVM would meet errors when trying to emulate MMIOs for TDX guest during instruction decoding. So, TDX guest relies on SPTEs being installed for MMIOs, which are with no RWX bits and with VE suppress bit unset, to inject VE to TDX guest. The TDX guest would then issue TDVMCALL in the VE handler to perform instruction decoding and have host do MMIO emulation. TDX also relies on EPT A/D bits as EPT A/D bits have been supported in all CPUs since Haswell. Relying on it can avoid RWX bits being masked out in the mirror page table for prefaulted entries. Signed-off-by: Isaku Yamahata <[email protected]> Co-developed-by: Rick Edgecombe <[email protected]> Signed-off-by: Rick Edgecombe <[email protected]> Co-developed-by: Yan Zhao <[email protected]> Signed-off-by: Yan Zhao <[email protected]> Reviewed-by: Paolo Bonzini <[email protected]> Signed-off-by: Yan Zhao <[email protected]> --- Requested by Sean at [1]. [1] https://lore.kernel.org/kvm/[email protected]/ Signed-off-by: Paolo Bonzini <[email protected]>
Diffstat (limited to 'rust/helpers/task.c')
0 files changed, 0 insertions, 0 deletions