[PATCH v5 0/6] Support TDX guests on Hyper-V

From: Dexuan Cui
Date: Fri Apr 21 2023 - 22:19:36 EST


The patchset adds the Hyper-V specific code so that a TDX guest can run
on Hyper-V. Please review.

This v5 patchset is based on Michael Kelley's v7 DDA patchset:
https://github.com/kelleymh/linux/commits/v7
Some of Michael's patches are in tip.git, and the others are in Hyper-V tree.

This v5 patchset addressed the comments from Kirill and and Michael:
1. Added Michael's Reviewed-by to all the 6 patches except for patch 5.
2. Added Kirill's Signed-off-by to patch 2.
3. Improved the error handling in hv_synic_alloc() and hv_synic_free().

Please see each patch's log message for the changes.

@x86 maintainers: Can you please take patch 1 and 2? They can apply
cleanly to the tip.git tree's branch x86/tdx.

@Michael Kelley: Can you please review patch 5?

@Wei Liu: Patch 3, 4, 5, 6 need to go through the Hyper-V tree's
hyperv-next branch because they're based on Michael Kelley's DDA
patches. The 4 patches can apply cleanly to hyperv-next.

If you want to view the patches on github, it is in this branch:
https://github.com/dcui/tdx/commits/decui/michaelv7dda/tdx/v5

FYI, v1-v4 are here:
https://lwn.net/ml/linux-kernel/20221121195151.21812-1-decui@xxxxxxxxxxxxx/
https://lwn.net/ml/linux-kernel/20221207003325.21503-7-decui@xxxxxxxxxxxxx/
https://lwn.net/ml/linux-kernel/20230206192419.24525-1-decui@xxxxxxxxxxxxx/
https://lwn.net/ml/linux-kernel/20230408204759.14902-6-decui@xxxxxxxxxxxxx/

Thanks,
Dexuan

Dexuan Cui (6):
x86/tdx: Retry TDVMCALL_MAP_GPA() when needed
x86/tdx: Support vmalloc() for tdx_enc_status_changed()
x86/hyperv: Add hv_isolation_type_tdx() to detect TDX guests
x86/hyperv: Support hypercalls for TDX guests
Drivers: hv: vmbus: Support TDX guests
x86/hyperv: Fix serial console interrupts for TDX guests

arch/x86/coco/tdx/tdx.c | 122 ++++++++++++++++++++++-------
arch/x86/hyperv/hv_apic.c | 6 +-
arch/x86/hyperv/hv_init.c | 27 ++++++-
arch/x86/hyperv/ivm.c | 20 +++++
arch/x86/include/asm/hyperv-tlfs.h | 3 +-
arch/x86/include/asm/mshyperv.h | 20 +++++
arch/x86/kernel/cpu/mshyperv.c | 43 ++++++++++
drivers/hv/hv.c | 54 ++++++++++++-
drivers/hv/hv_common.c | 30 +++++++
include/asm-generic/mshyperv.h | 1 +
10 files changed, 289 insertions(+), 37 deletions(-)

--
2.25.1