Hyper-V provides two modes for running Intel TDX VMs: 1) TD Partitioning mode with a paravisor (see [1]). 2) In "fully enlightened" mode with normal TDX shared bit control over page encryption, and no paravisor The first mode is similar to AMD SEV-SNP's vTOM mode (see [2]). The second is similar to AMD SEV-SNP's C-bit mode(see [2]). For #2, the v6 patchset was [3], which is later split into 2 parts: the generic TDX part (see [4][5]), and the Hyper-V specific part, i.e. the first 5 patches of this patchset. For the second part, I rebased the patches to Tianyu's fully enlighted SNP v7 patchset [2]. Since this is a straightforward rebasing, I keep the existing Acked-by and Reviewed-by in the v6 patchset [3]. The next 3 patches of this patchset add the support for #1. The last patch (the 9th patch) just makes some cleanup. Please review all the 9 patches, which are also on my github branch [6]. I tested the patches for a regular VM, a VBS VM, a SNP VM with the paravisor, and a TDX VM with the paravisor and a TDX VM without the paravisor, and an ARM64 VM. All the VMs worked as expected. If the patches all look good, I expect that Tianyu's patches [2] are merged into the Hyper-V tree's hyperv-next branch first, then these 9 patches can be merged afterwards. Compared with v1, the difference is trivial: the v2 is mainly a rebase to Tianyu's v7. Thanks, Dexuan References: [1] Intel TDX Module v1.5 TD Partitioning Architecture Specification [2] https://lwn.net/ml/linux-kernel/20230818102919.1318039-1-ltykernel@xxxxxxxxx/ [3] https://lwn.net/ml/linux-kernel/20230504225351.10765-1-decui@xxxxxxxxxxxxx/ [4] https://lwn.net/ml/linux-kernel/20230811214826.9609-1-decui%40microsoft.com/ [5] https://github.com/dcui/tdx/commits/decui/mainline/x86/tdx/v10 [6] https://github.com/dcui/tdx/commits/decui/mainline/x86/hyperv/tdx-v2 Dexuan Cui (9): x86/hyperv: Add hv_isolation_type_tdx() to detect TDX guests x86/hyperv: Support hypercalls for fully enlightened TDX guests Drivers: hv: vmbus: Support fully enlightened TDX guests x86/hyperv: Fix serial console interrupts for fully enlightened TDX guests Drivers: hv: vmbus: Support >64 VPs for a fully enlightened TDX/SNP VM x86/hyperv: Introduce a global variable hyperv_paravisor_present Drivers: hv: vmbus: Bring the post_msg_page back for TDX VMs with the paravisor x86/hyperv: Use TDX GHCI to access some MSRs in a TDX VM with the paravisor x86/hyperv: Remove hv_isolation_type_en_snp arch/x86/hyperv/hv_apic.c | 15 +++- arch/x86/hyperv/hv_init.c | 59 +++++++++++--- arch/x86/hyperv/ivm.c | 120 ++++++++++++++++++++++++++--- arch/x86/include/asm/hyperv-tlfs.h | 3 +- arch/x86/include/asm/mshyperv.h | 42 +++++++--- arch/x86/kernel/cpu/mshyperv.c | 75 +++++++++++++++--- drivers/hv/connection.c | 2 +- drivers/hv/hv.c | 88 +++++++++++++++++---- drivers/hv/hv_common.c | 46 ++++++++--- drivers/hv/hyperv_vmbus.h | 11 +++ include/asm-generic/mshyperv.h | 6 +- 11 files changed, 391 insertions(+), 76 deletions(-) -- 2.25.1