[PATCH v3 0/7] Add TDX Guest Support (shared-mm support)

From: Kuppuswamy Sathyanarayanan
Date: Tue Jul 20 2021 - 00:15:20 EST


Hi All,

Intel's Trust Domain Extensions (TDX) protect guest VMs from malicious
hosts and some physical attacks. Since VMM is untrusted entity, it does
not allow VMM to access guest private memory. Any memory that is required
for communication with VMM must be shared explicitly. This series adds
support to securely share guest memory with VMM when it is required by
guest.

This series is the continuation of the patch series titled "Add TDX Guest
Support (Initial support)", "Add TDX Guest Support (#VE handler support)"
and "Add TDX Guest Support (boot fixes)" which added initial support,
#VE handler support and boot fixes for TDX guests. You can find the
related patchsets in the following links.

[set 1] - https://lore.kernel.org/patchwork/project/lkml/list/?series=508773
[set 2] - https://lore.kernel.org/patchwork/project/lkml/list/?series=508792
[set 3] - https://lore.kernel.org/patchwork/project/lkml/list/?series=508794

Also please note that this series alone is not necessarily fully
functional. You need to apply all the above 3 patch series to get
a fully functional TDX guest.

You can find TDX related documents in the following link.

https://software.intel.com/content/www/br/pt/develop/articles/intel-trust-domain-extensions.html

Changes since v2:
* Rebased on top of v5.14-rc1.
* No functional changes.

Isaku Yamahata (1):
x86/tdx: ioapic: Add shared bit for IOAPIC base address

Kirill A. Shutemov (6):
x86/mm: Move force_dma_unencrypted() to common code
x86/tdx: Exclude Shared bit from physical_mask
x86/tdx: Make pages shared in ioremap()
x86/tdx: Add helper to do MapGPA hypercall
x86/tdx: Make DMA pages shared
x86/kvm: Use bounce buffers for TD guest

arch/x86/Kconfig | 9 +++-
arch/x86/include/asm/mem_encrypt_common.h | 20 ++++++++
arch/x86/include/asm/pgtable.h | 5 ++
arch/x86/include/asm/tdx.h | 22 +++++++++
arch/x86/kernel/apic/io_apic.c | 18 ++++++-
arch/x86/kernel/tdx.c | 60 +++++++++++++++++++++++
arch/x86/mm/Makefile | 2 +
arch/x86/mm/ioremap.c | 10 ++--
arch/x86/mm/mem_encrypt.c | 10 ++--
arch/x86/mm/mem_encrypt_common.c | 38 ++++++++++++++
arch/x86/mm/pat/set_memory.c | 49 +++++++++++++++---
11 files changed, 222 insertions(+), 21 deletions(-)
create mode 100644 arch/x86/include/asm/mem_encrypt_common.h
create mode 100644 arch/x86/mm/mem_encrypt_common.c

--
2.25.1