The Linux Kernel Mailing List
 help / color / mirror / Atom feed
* [PATCH v2 00/13] mshv: add SEV-SNP support for MSHV root partitions
@ 2026-08-10 12:44 Wei Hu
  2026-08-10 12:44 ` [PATCH v2 01/13] mshv: add SEV-SNP UAPI definitions Wei Hu
                   ` (12 more replies)
  0 siblings, 13 replies; 17+ messages in thread
From: Wei Hu @ 2026-08-10 12:44 UTC (permalink / raw)
  To: linux-hyperv
  Cc: linux-kernel, K. Y. Srinivasan, Haiyang Zhang, Wei Liu,
	Dexuan Cui, Long Li

This series adds support for creating and managing AMD SEV-SNP
confidential virtual machines through the Microsoft Hypervisor root
partition driver.

The series adds the required Hyper-V ABI and MSHV UAPI definitions,
hypercall helpers, partition ioctls, capability discovery, processor
feature handling, memory teardown, and crash-dump support.

It also adds the x86 EFI HvLoader handoff required to boot Linux as an
MSHV root partition and corrects SynIC register ownership when the root
partition is itself running nested.

The patches are based on Linux v7.2-rc5.

Testing:

  - Built the complete 13-patch series on x86_64.
  - Verified the installed MSHV UAPI compiles from userspace.
  - Booted Linux as an MSHV root partition with SEV-SNP available.
  - Passed Cloud Hypervisor's common_cvm::test_focal_simple_launch.
  - Created and booted a four-vCPU SEV-SNP guest.
  - Verified SNP panic-time page unlock for kdump.

Functional testing on the development host used an additional local
nested-VMBus interrupt workaround required by that nested environment.
That workaround is not part of this series.

Changes since v1:

  - Make the isolated-import UAPI self-contained and translate it to
    the internal Hyper-V ABI type in the driver.
  - Preserve the asynchronous import rep count across CALL_PENDING
    completion and reject invalid zero/oversized progress.
  - Validate physical contiguity for large-page host-access requests,
    use kvcalloc() for userspace-sized page arrays, and restore IRQ state
    on defensive error paths.
  - Keep encrypted memory regions registered until ordered partition
    teardown and retry transient SNP state-destruction failures.
  - Make SEV-SNP capability queries informational so unsupported
    platforms retain ordinary MSHV functionality.
  - Fully initialize partition creation properties on all architectures,
    stabilize the extended create-partition userspace fetch, and fix the
    VERW feature-field typo.
  - Serialize panic-time memory-region traversal.
  - Allocate the augmented EFI command line from EFI loader memory,
    add command-line bounds checking, correctly append setup_data,
    compact legacy resource entries, preserve partially parsed range
    state, and release temporary EFI allocations.
  - Limit the EFI HvLoader implementation to x86_64; the unhooked ARM64
    implementation from v1 was removed.

Link: https://lore.kernel.org/linux-hyperv/20260807135134.303943-1-weh@linux.microsoft.com/

Wei Hu (4):
  hyperv: fix hv_input_get_system_property layout for SNP status
  mshv: unlock SNP pages on panic for crashdump collection
  hyperv: add MSHV Dom0 root-partition boot enablement (EFI HvLoader)
  mshv: set up own SynIC registers on a nested root partition

Wei Liu (9):
  mshv: add SEV-SNP UAPI definitions
  mshv: add SEV-SNP PSP request hypercall
  mshv: add SEV-SNP isolated page hypercalls
  mshv: wire SEV-SNP partition ioctls
  mshv: detect and report SEV-SNP support at init
  mshv: default to safe partition CPU features
  mshv: accept partial CPU feature banks
  mshv: define full processor and xsave feature masks
  mshv: unmap SNP memory before state teardown

 MAINTAINERS                                   |   2 +
 arch/x86/hyperv/hv_init.c                     |   3 +
 arch/x86/include/asm/mshyperv.h               |   1 +
 arch/x86/include/uapi/asm/setup_data.h        |   3 +-
 arch/x86/kernel/cpu/mshyperv.c                |  81 +-
 drivers/firmware/efi/libstub/Makefile         |   5 +-
 .../firmware/efi/libstub/efi-mshv-common.c    | 148 ++++
 drivers/firmware/efi/libstub/efi-mshv.h       | 109 +++
 drivers/firmware/efi/libstub/x86-efi-mshv.c   | 217 ++++++
 drivers/firmware/efi/libstub/x86-stub.c       |  18 +-
 drivers/hv/hv_common.c                        |  82 ++
 drivers/hv/mshv_regions.c                     |   2 +-
 drivers/hv/mshv_root.h                        |  28 +
 drivers/hv/mshv_root_hv_call.c                | 180 ++++-
 drivers/hv/mshv_root_main.c                   | 729 +++++++++++++++++-
 drivers/hv/mshv_synic.c                       |  16 +-
 include/asm-generic/mshyperv.h                |   7 +
 include/hyperv/hvgdk_mini.h                   |  31 +
 include/hyperv/hvhdk.h                        | 124 ++-
 include/hyperv/hvhdk_mini.h                   |  56 +-
 include/linux/efi.h                           |   1 +
 include/uapi/linux/mshv.h                     | 104 ++-
 22 files changed, 1914 insertions(+), 33 deletions(-)
 create mode 100644 drivers/firmware/efi/libstub/efi-mshv-common.c
 create mode 100644 drivers/firmware/efi/libstub/efi-mshv.h
 create mode 100644 drivers/firmware/efi/libstub/x86-efi-mshv.c


base-commit: f5098b6bae761e346ebcd9da7f95622c04733cff
-- 
2.43.0

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

end of thread, other threads:[~2026-08-10 19:00 UTC | newest]

Thread overview: 17+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-08-10 12:44 [PATCH v2 00/13] mshv: add SEV-SNP support for MSHV root partitions Wei Hu
2026-08-10 12:44 ` [PATCH v2 01/13] mshv: add SEV-SNP UAPI definitions Wei Hu
2026-08-10 12:44 ` [PATCH v2 02/13] mshv: add SEV-SNP PSP request hypercall Wei Hu
2026-08-10 12:44 ` [PATCH v2 03/13] mshv: add SEV-SNP isolated page hypercalls Wei Hu
2026-08-10 12:44 ` [PATCH v2 04/13] mshv: wire SEV-SNP partition ioctls Wei Hu
2026-08-10 12:44 ` [PATCH v2 05/13] hyperv: fix hv_input_get_system_property layout for SNP status Wei Hu
2026-08-10 18:59   ` Wei Liu
2026-08-10 12:45 ` [PATCH v2 06/13] mshv: detect and report SEV-SNP support at init Wei Hu
2026-08-10 18:53   ` Wei Liu
2026-08-10 12:45 ` [PATCH v2 07/13] mshv: default to safe partition CPU features Wei Hu
2026-08-10 12:45 ` [PATCH v2 08/13] mshv: accept partial CPU feature banks Wei Hu
2026-08-10 12:45 ` [PATCH v2 09/13] mshv: define full processor and xsave feature masks Wei Hu
2026-08-10 12:45 ` [PATCH v2 10/13] mshv: unmap SNP memory before state teardown Wei Hu
2026-08-10 12:45 ` [PATCH v2 11/13] mshv: unlock SNP pages on panic for crashdump collection Wei Hu
2026-08-10 12:45 ` [PATCH v2 12/13] hyperv: add MSHV Dom0 root-partition boot enablement (EFI HvLoader) Wei Hu
2026-08-10 18:50   ` Wei Liu
2026-08-10 12:45 ` [PATCH v2 13/13] mshv: set up own SynIC registers on a nested root partition Wei Hu

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox