linux-hyperv.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v3 00/10] Support TDX guests on Hyper-V (the Hyper-V specific part)
@ 2023-08-24  8:07 Dexuan Cui
  2023-08-24  8:07 ` [PATCH v3 01/10] x86/hyperv: Add hv_isolation_type_tdx() to detect TDX guests Dexuan Cui
                   ` (10 more replies)
  0 siblings, 11 replies; 24+ messages in thread
From: Dexuan Cui @ 2023-08-24  8:07 UTC (permalink / raw)
  To: ak, arnd, bp, brijesh.singh, dan.j.williams, dave.hansen,
	dave.hansen, haiyangz, hpa, jane.chu, kirill.shutemov, kys,
	linux-hyperv, luto, mingo, peterz, rostedt,
	sathyanarayanan.kuppuswamy, seanjc, tglx, tony.luck, wei.liu,
	Jason, nik.borisov, mikelley
  Cc: x86, linux-kernel, linux-arch, Tianyu.Lan, rick.p.edgecombe,
	andavis, mheslin, vkuznets, xiaoyao.li, Dexuan Cui

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.
The second is similar to AMD SEV-SNP's C-bit mode.

For #2, the v6 patchset was [2], which is later split into 2 parts:
the generic TDX part (see [3][4]), 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 patchset (which has been
in the Hyper-V tree's hyperv-next branch). Since this is mostly a
straightforward rebasing, I keep the existing Acked-by and
Reviewed-by in the v6 patchset [2].

The next 3 patches of this patchset add the support for #1.

The last 2 patches (the 9th and the 10th) just make some cleanup.

Please review all the 10 patches, which are also on my github
branch [5]. The patches can apply cleanly on hyperv-next.

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.

Thanks,
Dexuan

References:
[1] Intel TDX Module v1.5 TD Partitioning Architecture Specification
[2] https://lwn.net/ml/linux-kernel/20230504225351.10765-1-decui@microsoft.com/
[3] https://lwn.net/ml/linux-kernel/20230811214826.9609-1-decui%40microsoft.com/
[4] https://github.com/dcui/tdx/commits/decui/mainline/x86/tdx/v10
[5] https://github.com/dcui/tdx/commits/decui/mainline/x86/hyperv/tdx-v3

Dexuan Cui (10):
  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
  x86/hyperv: Move the code in ivm.c around to avoid unnecessary ifdef's

 arch/x86/hyperv/hv_apic.c          |  15 +-
 arch/x86/hyperv/hv_init.c          |  59 ++++-
 arch/x86/hyperv/ivm.c              | 374 ++++++++++++++++++-----------
 arch/x86/include/asm/hyperv-tlfs.h |   3 +-
 arch/x86/include/asm/mshyperv.h    |  43 +++-
 arch/x86/kernel/cpu/mshyperv.c     |  65 ++++-
 drivers/hv/connection.c            |  15 +-
 drivers/hv/hv.c                    |  78 +++++-
 drivers/hv/hv_common.c             |  43 +++-
 drivers/hv/hyperv_vmbus.h          |  11 +
 include/asm-generic/mshyperv.h     |   5 +-
 11 files changed, 505 insertions(+), 206 deletions(-)

-- 
2.25.1


^ permalink raw reply	[flat|nested] 24+ messages in thread

end of thread, other threads:[~2024-01-17  2:22 UTC | newest]

Thread overview: 24+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-08-24  8:07 [PATCH v3 00/10] Support TDX guests on Hyper-V (the Hyper-V specific part) Dexuan Cui
2023-08-24  8:07 ` [PATCH v3 01/10] x86/hyperv: Add hv_isolation_type_tdx() to detect TDX guests Dexuan Cui
2023-08-24  8:07 ` [PATCH v3 02/10] x86/hyperv: Support hypercalls for fully enlightened " Dexuan Cui
2023-08-24  8:07 ` [PATCH v3 03/10] Drivers: hv: vmbus: Support " Dexuan Cui
2023-08-24  8:07 ` [PATCH v3 04/10] x86/hyperv: Fix serial console interrupts for " Dexuan Cui
2023-08-24  8:07 ` [PATCH v3 05/10] Drivers: hv: vmbus: Support >64 VPs for a fully enlightened TDX/SNP VM Dexuan Cui
2023-08-24  8:07 ` [PATCH v3 06/10] x86/hyperv: Introduce a global variable hyperv_paravisor_present Dexuan Cui
2023-08-24 14:06   ` Michael Kelley (LINUX)
2023-08-24 14:41   ` Tianyu Lan
2023-08-24  8:07 ` [PATCH v3 07/10] Drivers: hv: vmbus: Bring the post_msg_page back for TDX VMs with the paravisor Dexuan Cui
2023-08-24 14:07   ` Michael Kelley (LINUX)
2023-08-24 14:40   ` Tianyu Lan
2023-08-24  8:07 ` [PATCH v3 08/10] x86/hyperv: Use TDX GHCI to access some MSRs in a TDX VM " Dexuan Cui
2023-08-24 14:08   ` Michael Kelley (LINUX)
2023-08-24 14:44   ` Tianyu Lan
2023-12-04 15:10   ` Dave Hansen
2024-01-17  2:22     ` Wei Liu
2023-08-24  8:07 ` [PATCH v3 09/10] x86/hyperv: Remove hv_isolation_type_en_snp Dexuan Cui
2023-08-24 14:09   ` Michael Kelley (LINUX)
2023-08-24 14:45   ` Tianyu Lan
2023-08-24  8:07 ` [PATCH v3 10/10] x86/hyperv: Move the code in ivm.c around to avoid unnecessary ifdef's Dexuan Cui
2023-08-24 14:10   ` Michael Kelley (LINUX)
2023-08-24 14:46   ` Tianyu Lan
2023-08-25  0:05 ` [PATCH v3 00/10] Support TDX guests on Hyper-V (the Hyper-V specific part) Wei Liu

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).