lkml.org 
[lkml]   [2023]   [Mar]   [20]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    From
    Subject[PATCH v3 0/5] Hyper-V VTL support
    Date
    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

    \
     
     \ /
      Last update: 2023-03-27 01:08    [W:4.776 / U:0.136 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site