linux-arch.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Saurabh Sengar <ssengar@linux.microsoft.com>
To: tglx@linutronix.de, mingo@redhat.com, bp@alien8.de,
	dave.hansen@linux.intel.com, x86@kernel.org, hpa@zytor.com,
	kys@microsoft.com, haiyangz@microsoft.com, wei.liu@kernel.org,
	decui@microsoft.com, arnd@arndb.de, tiala@microsoft.com,
	mikelley@microsoft.com, linux-kernel@vger.kernel.org,
	linux-hyperv@vger.kernel.org, linux-arch@vger.kernel.org
Subject: [PATCH v3 0/5] Hyper-V VTL support
Date: Mon, 20 Mar 2023 03:03:33 -0700	[thread overview]
Message-ID: <1679306618-31484-1-git-send-email-ssengar@linux.microsoft.com> (raw)

This patch series introduces support for Virtual Trust Level (VTL)
in Hyper-V systems. It provide a foundation for the implementation
of Hyper-V VSM support in the Linux kernel, providing a secure
platform for the development and deployment of applications.

Virtual Secure Mode (VSM) is a critical aspect of the security
infrastructure in Hyper-V systems. It provides a set of hypervisor
capabilities and enlightenments that enable the creation and
management of new security boundaries within operating system
software. The VSM achieves and maintains isolation through Virtual
Trust Levels, which are hierarchical, with higher levels being more
privileged than lower levels. Please refer to this link for further
information: https://learn.microsoft.com/en-us/virtualization/hyper-v-on-windows/tlfs/vsm

This patch series adds the initialization of the x86 platform for VTL
systems. This also adds the VTL early bootup code for initializing
and bringing up secondary cpus to targeted VTL context. In VTL, AP
has to start directly in the 64-bit mode, bypassing the usual
16-bit -> 32-bit -> 64-bit mode transition sequence that occurs after
waking up an AP with SIPI whose vector points to the 16-bit AP
startup trampoline code.

Currently only VTL level supprted is '2'. This patch series is tested
extensively on VTL2 systems.

[V3]
 - Break in to 5 patches
 - hv_init_vp_context_t -> hv_init_vp_context
 - HYPERV_VTL -> HYPERV_VTL_MODE
 - Modify description of HYPERV_VTL_MODE
 - VTL 0 and VTL 2 -> VTL0 and VTL2
 - Remove casting for this_cpu_ptr pointer

[V2]
 - Remove the code for reserve 1 IRQ.
 - boot_cpu_has -> cpu_feature_enabled.
 - Improved commit message for 0002 patch.
 - Improved Kconfig flag description for HYPERV_VTL.
 - Removed hv_result as a wrapper around hv_do_hypercall().
 - The value of output[0] copied to a local variable before returning.

Saurabh Sengar (5):
  x86/init: Make get/set_rtc_noop() public
  x86/hyperv: Add VTL specific structs and hypercalls
  x86/hyperv: Make hv_get_nmi_reason public
  x86/hyperv: VTL support for Hyper-V
  x86/Kconfig: Add HYPERV_VTL_MODE

 arch/x86/Kconfig                   |  24 +++
 arch/x86/hyperv/Makefile           |   1 +
 arch/x86/hyperv/hv_vtl.c           | 227 +++++++++++++++++++++++++++++
 arch/x86/include/asm/hyperv-tlfs.h |  75 ++++++++++
 arch/x86/include/asm/mshyperv.h    |  15 ++
 arch/x86/include/asm/x86_init.h    |   2 +
 arch/x86/kernel/cpu/mshyperv.c     |   6 +-
 arch/x86/kernel/x86_init.c         |   4 +-
 include/asm-generic/hyperv-tlfs.h  |   4 +
 9 files changed, 351 insertions(+), 7 deletions(-)
 create mode 100644 arch/x86/hyperv/hv_vtl.c

-- 
2.34.1


             reply	other threads:[~2023-03-20 10:04 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-03-20 10:03 Saurabh Sengar [this message]
2023-03-20 10:03 ` [PATCH v3 1/5] x86/init: Make get/set_rtc_noop() public Saurabh Sengar
2023-03-26 15:03   ` Michael Kelley (LINUX)
2023-03-27  4:47     ` Saurabh Singh Sengar
2023-03-20 10:03 ` [PATCH v3 2/5] x86/hyperv: Add VTL specific structs and hypercalls Saurabh Sengar
2023-03-26 15:05   ` Michael Kelley (LINUX)
2023-03-20 10:03 ` [PATCH v3 3/5] x86/hyperv: Make hv_get_nmi_reason public Saurabh Sengar
2023-03-26 15:06   ` Michael Kelley (LINUX)
2023-03-20 10:03 ` [PATCH v3 4/5] x86/hyperv: VTL support for Hyper-V Saurabh Sengar
2023-03-20 18:16   ` Michael Kelley (LINUX)
2023-03-21 11:27     ` Saurabh Singh Sengar
2023-03-20 10:03 ` [PATCH v3 5/5] x86/Kconfig: Add HYPERV_VTL_MODE Saurabh Sengar
2023-03-26 15:16   ` Michael Kelley (LINUX)
2023-03-26 16:47     ` Saurabh Singh Sengar

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1679306618-31484-1-git-send-email-ssengar@linux.microsoft.com \
    --to=ssengar@linux.microsoft.com \
    --cc=arnd@arndb.de \
    --cc=bp@alien8.de \
    --cc=dave.hansen@linux.intel.com \
    --cc=decui@microsoft.com \
    --cc=haiyangz@microsoft.com \
    --cc=hpa@zytor.com \
    --cc=kys@microsoft.com \
    --cc=linux-arch@vger.kernel.org \
    --cc=linux-hyperv@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mikelley@microsoft.com \
    --cc=mingo@redhat.com \
    --cc=tglx@linutronix.de \
    --cc=tiala@microsoft.com \
    --cc=wei.liu@kernel.org \
    --cc=x86@kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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).