From patchwork Mon Mar 20 10:03:33 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Saurabh Singh Sengar X-Patchwork-Id: 6887 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:604a:0:0:0:0:0 with SMTP id j10csp1132459wrt; Mon, 20 Mar 2023 03:25:53 -0700 (PDT) X-Google-Smtp-Source: AK7set/Tf7HoMDu2LfUFpdRZN2aMLEMeRPUnmxV9D3gpaaVO1PdXHMTcgYkI32iZh3os8n29/5yv X-Received: by 2002:a17:90b:38d2:b0:23d:22d7:9ecf with SMTP id nn18-20020a17090b38d200b0023d22d79ecfmr13201408pjb.7.1679307953425; Mon, 20 Mar 2023 03:25:53 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1679307953; cv=none; d=google.com; s=arc-20160816; b=c/HsgmZtVu51ltlrdqw+aL/t7QLDHgfk6+DbsC41SDDVi87y5bjeKQrIXC1/2OhDpt CFVa+qIOIurWgjRyYps2mzLZfW8ac8wlyvk59eyf/vj5v0FJSTi6hxCxg29TbVliVlmQ G02uk+ns+q1yT/bS4mAjuMOlyaA75zmQ5PvJLUwGpd2jW2Chmrg4lbKcr2YWWV6ZDhxa RtCPWZZO7qwi5oP/vY0oVItgNt0E6JL1EDJfA2C3OfSLP0PmMJxm2qX1FmISXGx/ze2U Yw2Fy5Dvkl5Cgd3NckLHQK/jJzYKASuVZebZfU0pzbEATXNzwZG3UzUWJWYoE6zeAIeM 47XA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:message-id:date:subject:to:from:dkim-signature :dkim-filter; bh=FtXfq6t14W8wRg84Ahg76WKseeVUXWFLWJc0iPV2wLA=; b=Qm8+ta2c7NOmpqz7VfO+TNZgGTuxwRlSSWmaCH7VsFhB1/eHng7sziYeZ+ho1fLivq 4THe15yeKh+tuxEN7JptcqDrWn7AUkYkLR0sEa5Xe7N/j3Su0hQtgrVwYVC7amOZQIGK 2sR9HcX/HyA7xt807VDjxq3YWZ1vgPHzpqPHwzm3p6R9ueDo/z1TGH/4ZHOrDs1Gegeq S5UV6L9n8H2cPsEqlKSzPtFX7FpuVjSFh0hiza8bNFutjnazkVz0yB57iRMT4NLh+Zuv KUhQkU89/CjBaoIc+LpJknVBm8CalaOq/fCHmDiYgeIDswiRjFQ3pi9JF6n8grdLvujz 3F0A== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linux.microsoft.com header.s=default header.b=eXTfTuo+; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linux.microsoft.com Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id nl9-20020a17090b384900b0023d029be072si10768290pjb.153.2023.03.20.03.25.40; Mon, 20 Mar 2023 03:25:53 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@linux.microsoft.com header.s=default header.b=eXTfTuo+; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linux.microsoft.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229906AbjCTKEe (ORCPT + 99 others); Mon, 20 Mar 2023 06:04:34 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:34246 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229837AbjCTKE3 (ORCPT ); Mon, 20 Mar 2023 06:04:29 -0400 Received: from linux.microsoft.com (linux.microsoft.com [13.77.154.182]) by lindbergh.monkeyblade.net (Postfix) with ESMTP id 26981F742; Mon, 20 Mar 2023 03:03:54 -0700 (PDT) Received: from linuxonhyperv3.guj3yctzbm1etfxqx2vob5hsef.xx.internal.cloudapp.net (linux.microsoft.com [13.77.154.182]) by linux.microsoft.com (Postfix) with ESMTPSA id BA19820FAACE; Mon, 20 Mar 2023 03:03:42 -0700 (PDT) DKIM-Filter: OpenDKIM Filter v2.11.0 linux.microsoft.com BA19820FAACE DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.microsoft.com; s=default; t=1679306622; bh=FtXfq6t14W8wRg84Ahg76WKseeVUXWFLWJc0iPV2wLA=; h=From:To:Subject:Date:From; b=eXTfTuo+P9FkVD43Ja9RyMHLIz/xN7jrFeKaO5VYBEVXYQwPsv65XW5bwLTdeunrD RLKdwK/k/Roawysa1ZUEEDO0gG8mRc54Q6/64sMXveZcq/K1WY//9GItZQ7ZJ52yNZ VpZGll6djnxfpv1416Co7IH5q23/scL2DMJQs7Os= From: Saurabh Sengar 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 Message-Id: <1679306618-31484-1-git-send-email-ssengar@linux.microsoft.com> X-Mailer: git-send-email 1.8.3.1 X-Spam-Status: No, score=-18.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,ENV_AND_HDR_SPF_MATCH,RCVD_IN_DNSWL_MED, SPF_HELO_PASS,SPF_PASS,URI_TRY_3LD,USER_IN_DEF_DKIM_WL, USER_IN_DEF_SPF_WL autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1760882016438107308?= X-GMAIL-MSGID: =?utf-8?q?1760882016438107308?= 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