linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [RFC PATCH 00/17] x86/hyperv/sev: Add AMD sev-snp enlightened guest support on hyperv
@ 2022-11-09 20:53 Tianyu Lan
  2022-11-09 20:53 ` [RFC PATCH 01/17] x86/boot: Check boot param's cc_blob_address for direct boot mode Tianyu Lan
                   ` (16 more replies)
  0 siblings, 17 replies; 23+ messages in thread
From: Tianyu Lan @ 2022-11-09 20:53 UTC (permalink / raw)
  To: luto, tglx, mingo, bp, dave.hansen, x86, hpa, seanjc, pbonzini,
	jgross, tiala, kirill, jiangshan.ljs, peterz, ashish.kalra,
	srutherford, akpm, anshuman.khandual, pawan.kumar.gupta,
	adrian.hunter, daniel.sneddon, alexander.shishkin, sandipan.das,
	ray.huang, brijesh.singh, michael.roth, thomas.lendacky,
	venu.busireddy, sterritt, tony.luck, samitolvanen, fenghua.yu
  Cc: linux-kernel, kvm, linux-hyperv, linux-arch

From: Tianyu Lan <tiala@microsoft.com>

This patchset is to add AMD sev-snp enlightened guest
support on hyperv. Hyperv uses Linux direct boot mode
to boot up Linux kernel and so it needs to pvalidate
system memory by itself.

In hyperv case, there is no boot loader and so cc blob
is prepared by hypervisor. In this series, hypervisor
set the cc blob address directly into boot parameter
of Linux kernel. If the magic number on cc blob address
is valid, kernel will read cc blob.

Shared memory between guests and hypervisor should be
decrypted and zero memory after decrypt memory. The data
in the target address. It maybe smearedto avoid smearing
data.

Introduce #HV exception support in AMD sev snp code and
#HV handler.

Tianyu Lan (17):
  x86/boot: Check boot param's cc_blob_address for direct boot mode
  x86/sev: Pvalidate memory gab for decompressing kernel
  x86/hyperv: Add sev-snp enlightened guest specific config
  x86/hyperv: apic change for sev-snp enlightened guest
  x86/hyperv: Decrypt hv vp assist page in sev-snp enlightened guest
  x86/hyperv: Get Virtual Trust Level via hvcall
  x86/hyperv: Use vmmcall to implement hvcall in sev-snp enlightened
    guest
  clocksource: hyper-v: decrypt hyperv tsc page in sev-snp enlightened
    guest
  x86/hyperv: decrypt vmbus pages for sev-snp enlightened guest
  x86/hyperv: set target vtl in the vmbus init message
  drivers: hv: Decrypt percpu hvcall input arg page in sev-snp
    enlightened guest
  Drivers: hv: vmbus: Decrypt vmbus ring buffer
  x86/hyperv: Initialize cpu and memory for sev-snp enlightened guest
  x86/hyperv: Add smp support for sev-snp guest
  x86/hyperv: Add hyperv-specific hadling for VMMCALL under SEV-ES
  x86/sev: Add a #HV exception handler
  x86/sev: Initialize #HV doorbell and handle interrupt requests

 arch/x86/boot/compressed/head_64.S    |   8 +
 arch/x86/boot/compressed/sev.c        | 111 +++++++-
 arch/x86/entry/entry_64.S             |  76 +++++
 arch/x86/hyperv/hv_apic.c             |  79 ++++--
 arch/x86/hyperv/hv_init.c             |  47 ++++
 arch/x86/hyperv/ivm.c                 |  12 +-
 arch/x86/include/asm/cpu_entry_area.h |   6 +
 arch/x86/include/asm/idtentry.h       |  39 ++-
 arch/x86/include/asm/irqflags.h       |  19 ++
 arch/x86/include/asm/mem_encrypt.h    |   2 +
 arch/x86/include/asm/mshyperv.h       |  68 +++--
 arch/x86/include/asm/msr-index.h      |   6 +
 arch/x86/include/asm/page_64_types.h  |   1 +
 arch/x86/include/asm/sev.h            |  13 +
 arch/x86/include/asm/svm.h            |  55 +++-
 arch/x86/include/asm/trapnr.h         |   1 +
 arch/x86/include/asm/traps.h          |   1 +
 arch/x86/include/uapi/asm/svm.h       |   4 +
 arch/x86/kernel/cpu/common.c          |   1 +
 arch/x86/kernel/cpu/mshyperv.c        | 267 +++++++++++++++++-
 arch/x86/kernel/dumpstack_64.c        |   9 +-
 arch/x86/kernel/idt.c                 |   1 +
 arch/x86/kernel/sev.c                 | 384 ++++++++++++++++++++++----
 arch/x86/kernel/traps.c               |  50 ++++
 arch/x86/mm/cpu_entry_area.c          |   2 +
 drivers/clocksource/hyperv_timer.c    |   2 +-
 drivers/hv/connection.c               |  14 +
 drivers/hv/hv.c                       |  32 ++-
 drivers/hv/hv_common.c                |  22 ++
 drivers/hv/ring_buffer.c              |   7 +-
 include/asm-generic/hyperv-tlfs.h     |  19 ++
 include/asm-generic/mshyperv.h        |   2 +
 include/linux/hyperv.h                |   4 +-
 33 files changed, 1250 insertions(+), 114 deletions(-)

-- 
2.25.1


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

end of thread, other threads:[~2022-11-14  1:28 UTC | newest]

Thread overview: 23+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-11-09 20:53 [RFC PATCH 00/17] x86/hyperv/sev: Add AMD sev-snp enlightened guest support on hyperv Tianyu Lan
2022-11-09 20:53 ` [RFC PATCH 01/17] x86/boot: Check boot param's cc_blob_address for direct boot mode Tianyu Lan
2022-11-09 23:39   ` Michael Roth
2022-11-10 15:01     ` Tianyu Lan
2022-11-09 20:53 ` [RFC PATCH 02/17] x86/sev: Pvalidate memory gab for decompressing kernel Tianyu Lan
2022-11-09 20:53 ` [RFC PATCH 03/17] x86/hyperv: Add sev-snp enlightened guest specific config Tianyu Lan
2022-11-09 20:53 ` [RFC PATCH 04/17] x86/hyperv: apic change for sev-snp enlightened guest Tianyu Lan
2022-11-09 20:53 ` [RFC PATCH 05/17] x86/hyperv: Decrypt hv vp assist page in " Tianyu Lan
2022-11-09 20:53 ` [RFC PATCH 06/17] x86/hyperv: Get Virtual Trust Level via hvcall Tianyu Lan
2022-11-09 20:53 ` [RFC PATCH 07/17] x86/hyperv: Use vmmcall to implement hvcall in sev-snp enlightened guest Tianyu Lan
2022-11-09 20:53 ` [RFC PATCH 08/17] clocksource: hyper-v: decrypt hyperv tsc page " Tianyu Lan
2022-11-09 20:53 ` [RFC PATCH 09/17] x86/hyperv: decrypt vmbus pages for " Tianyu Lan
2022-11-09 20:53 ` [RFC PATCH 10/17] x86/hyperv: set target vtl in the vmbus init message Tianyu Lan
2022-11-09 20:53 ` [RFC PATCH 11/17] drivers: hv: Decrypt percpu hvcall input arg page in sev-snp enlightened guest Tianyu Lan
2022-11-09 20:53 ` [RFC PATCH 12/17] Drivers: hv: vmbus: Decrypt vmbus ring buffer Tianyu Lan
2022-11-09 20:53 ` [RFC PATCH 13/17] x86/hyperv: Initialize cpu and memory for sev-snp enlightened guest Tianyu Lan
2022-11-09 20:53 ` [RFC PATCH 14/17] x86/hyperv: Add smp support for sev-snp guest Tianyu Lan
2022-11-09 20:53 ` [RFC PATCH 15/17] x86/hyperv: Add hyperv-specific hadling for VMMCALL under SEV-ES Tianyu Lan
2022-11-09 20:53 ` [RFC PATCH 16/17] x86/sev: Add a #HV exception handler Tianyu Lan
2022-11-10 20:38   ` Kalra, Ashish
2022-11-14  1:28     ` Tianyu Lan
2022-11-09 20:53 ` [RFC PATCH 17/17] x86/sev: Initialize #HV doorbell and handle interrupt requests Tianyu Lan
2022-11-10 21:36   ` Kalra, Ashish

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).