APPLIED: [PULL REQUEST][kinetic/linux-azure] Kinetic: Enable MSFT Hyper-v TDX guest support

Tim Gardner tim.gardner at canonical.com
Mon Jan 16 18:28:31 UTC 2023


On 1/12/23 7:44 AM, Tim Gardner wrote:
> SRU Justification
> 
> BugLink: https://bugs.launchpad.net/bugs/2002658
> 
> [Impact]
> 
> Support for Intel TDX guest driver is just now appearing upstream. This 
> patch set is a backport of the patches essential to enabling TDX guest 
> support on the Microsoft hypervisor.
> 
> Most of these patches are not yet upstream, but are considered benign 
> with respect to MSFT hypervisors that do not yet have support for TDX. I 
> have boot tested on an existing Hyper-v hypervisor to ensure backwards 
> compatibility.
> 
> This patch set will eventually be replaced by upstream patches.
> 
> [Test Plan]
> 
> Boot on a TDX enabled Hyper-v instance.
> 
> [Where things could go wrong]
> 
> Existing Azure instances could have boot issues.
> 
> -----------------------------------------------------------------------
> 
> The following changes since commit 
> 1c80ad05e8fbba41a36a1dcccdf7ddf9916b6e1a:
> 
>    UBUNTU: Ubuntu-azure-5.19.0-1016.17 (2022-12-15 11:28:09 -0700)
> 
> are available in the Git repository at:
> 
>    git://git.launchpad.net/~timg-tpi/ubuntu/+source/linux/+git/kinetic 
> 102f198aac3f164c595a552165900fa63bc1f1e6
> 
> for you to fetch changes up to 102f198aac3f164c595a552165900fa63bc1f1e6:
> 
>    UBUNTU: SAUCE: tdx: Drivers: hv: vmbus:: Fix the ARM64 build caused 
> by recent TDX patches (2023-01-12 07:37:26 -0700)
> 
> ----------------------------------------------------------------
> Anirudh Rayabharam (1):
>        clocksource/drivers/hyperv: add data structure for reference TSC MSR
> 
> Dexuan Cui (14):
>        Revert "UBUNTU: SAUCE: x86/tdx: Add TDX Guest attestation 
> interface driver"
>        Revert "UBUNTU: SAUCE: selftests: tdx: Test GetReport TDX 
> attestation feature"
>        Revert "x86/hyper-v: Add hyperv Isolation VM check in the 
> cc_platform_has()"
>        UBUNTU: SAUCE: tdx: enable DEBUG: 
> tools/testing/selftests/tdx/tdx_guest_test.c
>        UBUNTU: SAUCE: tdx: swiotlb: check set_memory_decrypted()'s 
> return value
>        UBUNTU: SAUCE: tdx: x86/sev: mem_encrypt_free_decrypted_mem(): 
> encrypt the pages for AMD SME only
>        UBUNTU: SAUCE: tdx: x86/hyperv: Do not run 
> swiotlb_update_mem_attributes() in hyperv_init()
>        UBUNTU: SAUCE: tdx: x86/tdx: Retry TDVMCALL_MAP_GPA() when needed
>        UBUNTU: SAUCE: tdx: x86/tdx: Support vmalloc() for 
> tdx_enc_status_changed()
>        UBUNTU: SAUCE: tdx: x86/hyperv: Add hv_isolation_type_tdx() to 
> detect TDX guests
>        UBUNTU: SAUCE: tdx: x86/hyperv: Support hypercalls for TDX guests
>        UBUNTU: SAUCE: tdx: Drivers: hv: vmbus: Support TDX guests
>        UBUNTU: SAUCE: tdx: x86/hyperv: Fix serial console interrupts for 
> TDX guests
>        UBUNTU: SAUCE: tdx: Drivers: hv: vmbus:: Fix the ARM64 build 
> caused by recent TDX patches
> 
> Kirill A. Shutemov (1):
>        UBUNTU: SAUCE: tdx: x86/tdx: Expand __tdx_hypercall() to handle 
> more arguments
> 
> Kuppuswamy Sathyanarayanan (3):
>        x86/tdx: Add a wrapper to get TDREPORT0 from the TDX Module
>        virt: Add TDX guest driver
>        selftests/tdx: Test TDX attestation GetReport support
> 
> Tim Gardner (1):
>        UBUNTU: [Config] azure: Enable TDX guest driver
> 
>   Documentation/virt/coco/tdx-guest.rst         |  52 +++++++++++++++++
>   Documentation/virt/index.rst                  |   1 +
>   Documentation/x86/tdx.rst                     |  43 ++++++++++++++
>   arch/x86/coco/core.c                          |   6 --
>   arch/x86/coco/tdx/tdcall.S                    |  82 
> +++++++++++++++++++--------
>   arch/x86/coco/tdx/tdx.c                       | 262 
> ++++++++++++++++++++++++++++++++++++++++---------------------------------------------
>   arch/x86/hyperv/hv_init.c                     |  32 +++++++++--
>   arch/x86/hyperv/ivm.c                         |  28 +++++++++
>   arch/x86/include/asm/hyperv-tlfs.h            |   3 +-
>   arch/x86/include/asm/mshyperv.h               |  20 +++++++
>   arch/x86/include/asm/shared/tdx.h             |   6 ++
>   arch/x86/include/asm/tdx.h                    |   2 +
>   arch/x86/include/uapi/asm/tdx.h               |  51 -----------------
>   arch/x86/kernel/asm-offsets.c                 |   6 ++
>   arch/x86/kernel/cpu/mshyperv.c                |  44 ++++++++++++++-
>   arch/x86/mm/mem_encrypt_amd.c                 |   2 +-
>   arch/x86/mm/pat/set_memory.c                  |   2 +-
>   debian.azure/config/config.common.ubuntu      |   1 +
>   drivers/clocksource/hyperv_timer.c            |  29 +++++-----
>   drivers/hv/connection.c                       |   4 +-
>   drivers/hv/hv.c                               |  60 +++++++++++++++++++-
>   drivers/hv/hv_common.c                        |  12 ++++
>   drivers/hv/ring_buffer.c                      |   4 ++
>   drivers/virt/Kconfig                          |   2 +
>   drivers/virt/Makefile                         |   1 +
>   drivers/virt/coco/tdx-guest/Kconfig           |  10 ++++
>   drivers/virt/coco/tdx-guest/Makefile          |   2 +
>   drivers/virt/coco/tdx-guest/tdx-guest.c       | 102 
> +++++++++++++++++++++++++++++++++
>   include/asm-generic/hyperv-tlfs.h             |   9 +++
>   include/asm-generic/mshyperv.h                |   3 +
>   include/uapi/linux/tdx-guest.h                |  42 ++++++++++++++
>   kernel/dma/swiotlb.c                          |   5 +-
>   tools/arch/x86/include/uapi/asm/tdx.h         |  51 -----------------
>   tools/testing/selftests/tdx/Makefile          |   8 +--
>   tools/testing/selftests/tdx/config            |   2 +-
>   tools/testing/selftests/tdx/tdx_attest_test.c | 156 
> ---------------------------------------------------
>   tools/testing/selftests/tdx/tdx_guest_test.c  | 163 
> +++++++++++++++++++++++++++++++++++++++++++++++++++++
>   37 files changed, 847 insertions(+), 461 deletions(-)
>   create mode 100644 Documentation/virt/coco/tdx-guest.rst
>   delete mode 100644 arch/x86/include/uapi/asm/tdx.h
>   create mode 100644 drivers/virt/coco/tdx-guest/Kconfig
>   create mode 100644 drivers/virt/coco/tdx-guest/Makefile
>   create mode 100644 drivers/virt/coco/tdx-guest/tdx-guest.c
>   create mode 100644 include/uapi/linux/tdx-guest.h
>   delete mode 100644 tools/arch/x86/include/uapi/asm/tdx.h
>   delete mode 100644 tools/testing/selftests/tdx/tdx_attest_test.c
>   create mode 100644 tools/testing/selftests/tdx/tdx_guest_test.c
Applied to kinetic/linux-azure:master-next. Thanks.

-rtg
-- 
-----------
Tim Gardner
Canonical, Inc




More information about the kernel-team mailing list