ACK: [SRU][mantic:gcp][PULL] GCP TDX Support

Philip Cox philip.cox at canonical.com
Wed Feb 7 16:45:16 UTC 2024


On Tue, 2024-02-06 at 20:49 -0600, John Cabaj wrote:
> BugLink: https://bugs.launchpad.net/bugs/2052576
> 
> [Impact]
> 
> * Google requested TDX guest features to be added to GCP kernel.
> 
> [Fix]
> 
> * 16 clean cherry-picks, 2 backports from upstream
> * 11 backports from Intel
> * 1 config change to enable support
> 
> [Test Case]
> 
> * Compile tested
> * Boot tested
> * Tested internally at various stages of development
> * Tested by Google
> 
> [Where things could go wrong]
> 
> * Majority of patches come from upstream with minimal backporting.
> * Some patches sourced from Intel, and differ from upstream
> counterparts. 
>   However, these patches have been extensively tested in other
> kernels already released.
> 
> [Other Info]
> 
> * SF #00363309
> 
> ----------------------------------------------------------------
> 
> The following changes since commit
> 77c2daaf38b78fdf918f0bc15f5f876c7420e4b6:
> 
>   UBUNTU: Ubuntu-gcp-6.5.0-1013.13 (2024-01-24 15:18:45 -0600)
> 
> are available in the Git repository at:
> 
>  
> https://git.launchpad.net/~john-cabaj/ubuntu/+source/linux-gcp/+git/mantic-gcp-tdx
>  tdx
> 
> for you to fetch changes up to
> ff41aa9bed4a49032f83acc0dd96005aabeff590:
> 
>   UBUNTU: [Config] gcp: Updates for TDX (2024-02-06 20:42:03 -0600)
> 
> ----------------------------------------------------------------
> Dan Williams (6):
>       virt: sevguest: Fix passing a stack buffer as a scatterlist
> target
>       virt: coco: Add a coco/Makefile and coco/Kconfig
>       configfs-tsm: Introduce a shared ABI for attestation reports
>       virt: sevguest: Prep for kernel internal get_ext_report()
>       mm/slab: Add __free() support for kvfree
>       virt: sevguest: Add TSM_REPORTS support for SNP_GET_EXT_REPORT
> 
> Dexuan Cui (1):
>       x86/tdx: Retry partially-completed page conversion hypercalls
> 
> John Cabaj (1):
>       UBUNTU: [Config] gcp: Updates for TDX
> 
> Kai Huang (12):
>       UBUNTU: SAUCE: x86/tdx: Zero out the missing RSI in
> TDX_HYPERCALL macro
>       UBUNTU: SAUCE: x86/tdx: Skip saving output regs when SEAMCALL
> fails with VMFailInvalid
>       UBUNTU: SAUCE: x86/tdx: Make macros of TDCALLs consistent with
> the spec
>       UBUNTU: SAUCE: x86/tdx: Rename __tdx_module_call() to
> __tdcall()
>       UBUNTU: SAUCE: x86/tdx: Pass TDCALL/SEAMCALL input/output
> registers via a structure
>       UBUNTU: SAUCE: x86/tdx: Extend TDX_MODULE_CALL to support more
> TDCALL/SEAMCALL leafs
>       UBUNTU: SAUCE: x86/tdx: Make TDX_HYPERCALL asm similar to
> TDX_MODULE_CALL
>       UBUNTU: SAUCE: x86/tdx: Reimplement __tdx_hypercall() using
> TDX_MODULE_CALL asm
>       UBUNTU: SAUCE: x86/tdx: Remove 'struct tdx_hypercall_args'
>       UBUNTU: SAUCE: x86/virt/tdx: Wire up basic SEAMCALL functions
>       x86/virt/tdx: Make TDX_MODULE_CALL handle SEAMCALL #UD and #GP
>       x86/tdx: Fix __noreturn build warning around
> __tdx_hypercall_failed()
> 
> Kirill A. Shutemov (5):
>       x86/tdx: Mark TSC reliable
>       efi/unaccepted: Fix soft lockups caused by parallel memory
> acceptance
>       x86/coco: Disable 32-bit emulation by default on TDX and SEV
>       x86/tdx: Allow 32-bit emulation by default
>       x86/kvm: Do not try to disable kvmclock if it was not enabled
> 
> Kuppuswamy Sathyanarayanan (2):
>       UBUNTU: SAUCE: virt: tdx-guest: Add RTMR update interface
>       virt: tdx-guest: Add Quote generation support using TSM_REPORTS
> 
> Nikolay Borisov (1):
>       x86: Introduce ia32_enabled()
> 
> Thomas Gleixner (2):
>       x86/entry: Convert INT 0x80 emulation to IDTENTRY
>       x86/entry: Do not allow external 0x80 interrupts
> 
>  Documentation/ABI/testing/configfs-tsm   |  82
> ++++++++++++++++++++++++++++
>  Documentation/virt/coco/tdx-guest.rst    |  11 ++++
>  MAINTAINERS                              |   8 +++
>  arch/x86/Kconfig                         |  12 ++++
>  arch/x86/Makefile                        |   2 +
>  arch/x86/boot/compressed/tdx.c           |   6 +-
>  arch/x86/coco/tdx/tdcall.S               | 231 ++++++++++-----------
> --------------------------------------------------------
>  arch/x86/coco/tdx/tdx-shared.c           |  28 ++++++++--
>  arch/x86/coco/tdx/tdx.c                  | 194
> +++++++++++++++++++++++++++++++++++++++++++++++++---------------
>  arch/x86/entry/common.c                  |  97
> +++++++++++++++++++++++++++++++-
>  arch/x86/entry/entry_64_compat.S         |  77 ---------------------
> -----
>  arch/x86/include/asm/ia32.h              |  23 +++++++-
>  arch/x86/include/asm/idtentry.h          |   4 ++
>  arch/x86/include/asm/proto.h             |   4 --
>  arch/x86/include/asm/shared/tdx.h        |  91 ++++++++++++++++++---
> ---------
>  arch/x86/include/asm/tdx.h               |  15 +++++
>  arch/x86/kernel/asm-offsets.c            |  33 +++++------
>  arch/x86/kernel/idt.c                    |   2 +-
>  arch/x86/kernel/kvmclock.c               |  12 ++--
>  arch/x86/mm/mem_encrypt_amd.c            |  11 ++++
>  arch/x86/virt/Makefile                   |   2 +
>  arch/x86/virt/vmx/Makefile               |   2 +
>  arch/x86/virt/vmx/tdx/Makefile           |   2 +
>  arch/x86/virt/vmx/tdx/seamcall.S         |  61 +++++++++++++++++++++
>  arch/x86/virt/vmx/tdx/tdxcall.S          | 227
> ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-----------
> ------
>  arch/x86/xen/enlighten_pv.c              |   2 +-
>  arch/x86/xen/xen-asm.S                   |   2 +-
>  debian.gcp/config/annotations            |   2 +
>  drivers/firmware/efi/unaccepted_memory.c |  64 ++++++++++++++++++++--
>  drivers/virt/Kconfig                     |   6 +-
>  drivers/virt/Makefile                    |   4 +-
>  drivers/virt/coco/Kconfig                |  14 +++++
>  drivers/virt/coco/Makefile               |   8 +++
>  drivers/virt/coco/sev-guest/Kconfig      |   1 +
>  drivers/virt/coco/sev-guest/sev-guest.c  | 214
> ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------
> --
>  drivers/virt/coco/tdx-guest/Kconfig      |   1 +
>  drivers/virt/coco/tdx-guest/tdx-guest.c  | 264
> +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
> +++++++++++++++++-
>  drivers/virt/coco/tsm.c                  | 425
> +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
> +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
> +++
>  include/linux/slab.h                     |   2 +
>  include/linux/tsm.h                      |  69
> +++++++++++++++++++++++
>  include/uapi/linux/psp-sev.h             |   1 +
>  include/uapi/linux/sev-guest.h           |   4 +-
>  include/uapi/linux/tdx-guest.h           |  24 ++++++++
>  tools/objtool/noreturns.h                |   1 +
>  44 files changed, 1857 insertions(+), 488 deletions(-)
>  create mode 100644 Documentation/ABI/testing/configfs-tsm
>  create mode 100644 arch/x86/virt/Makefile
>  create mode 100644 arch/x86/virt/vmx/Makefile
>  create mode 100644 arch/x86/virt/vmx/tdx/Makefile
>  create mode 100644 arch/x86/virt/vmx/tdx/seamcall.S
>  create mode 100644 drivers/virt/coco/Kconfig
>  create mode 100644 drivers/virt/coco/Makefile
>  create mode 100644 drivers/virt/coco/tsm.c
>  create mode 100644 include/linux/tsm.h
> 

-- 
Acked-by: Philip Cox <philip.cox at canonical.com>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.ubuntu.com/archives/kernel-team/attachments/20240207/eda54518/attachment-0001.html>


More information about the kernel-team mailing list