From nobody Thu Sep 19 00:19:33 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) client-ip=192.237.175.120; envelope-from=xen-devel-bounces@lists.xenproject.org; helo=lists.xenproject.org; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=fail(p=quarantine dis=quarantine) header.from=epam.com ARC-Seal: i=1; a=rsa-sha256; t=1724843161; cv=none; d=zohomail.com; s=zohoarc; b=UMUt8xOV/dRni4KjEqYu6R7Rrr21CVpupHDQwpxSD5H+lBhF6YQTK7ekR6QljQM6Nm036adnTMoXG9Kf/0UsndyS/HvK7CShm2UAT9wPRX4Kmyz37DfUNNjDpI1XMoueL//C1OPfgUpdM+IQv2nYei4e2z4IF9b+RKPWbZVu0P4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1724843161; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=AlD+qkp+gSayzGhTg7w/LmpEXeVllV1DlJJeqlMMBFA=; b=K+Fj/pkhsNbqkytsDmG8cqY0/+YyOxO1f80zzRT2REkJJsqEwx+J7oKtXBxQlm/u1RpoEL31OhBkho7qR/0nKkDMA4nq7A0/wk0nUxKs2mu+olF3nuW5JpbB6BBMweE/Xkpc+Pj85h5FGxOaVhsDK5zOs4In7sOq6OTJi06Uuuc= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=fail header.from= (p=quarantine dis=quarantine) Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 1724843161476987.4983246251949; Wed, 28 Aug 2024 04:06:01 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.784709.1194088 (Exim 4.92) (envelope-from ) id 1sjGUk-0006z5-S3; Wed, 28 Aug 2024 11:05:46 +0000 Received: by outflank-mailman (output) from mailman id 784709.1194088; Wed, 28 Aug 2024 11:05:46 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1sjGUk-0006yw-OS; Wed, 28 Aug 2024 11:05:46 +0000 Received: by outflank-mailman (input) for mailman id 784709; Wed, 28 Aug 2024 11:05:45 +0000 Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50] helo=se1-gles-flk1.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1sjGUj-0006yl-PY for xen-devel@lists.xenproject.org; Wed, 28 Aug 2024 11:05:45 +0000 Received: from pb-smtp1.pobox.com (pb-smtp1.pobox.com [64.147.108.70]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS id 779dc1ec-652d-11ef-99a0-01e77a169b0f; Wed, 28 Aug 2024 13:05:43 +0200 (CEST) Received: from pb-smtp1.pobox.com (unknown [127.0.0.1]) by pb-smtp1.pobox.com (Postfix) with ESMTP id 4689C3DDE4; Wed, 28 Aug 2024 07:05:42 -0400 (EDT) (envelope-from sakib@darkstar.site) Received: from pb-smtp1.nyi.icgroup.com (unknown [127.0.0.1]) by pb-smtp1.pobox.com (Postfix) with ESMTP id 3A16A3DDE3; Wed, 28 Aug 2024 07:05:42 -0400 (EDT) (envelope-from sakib@darkstar.site) Received: from localhost (unknown [46.211.119.31]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by pb-smtp1.pobox.com (Postfix) with ESMTPSA id 3289F3DDE0; Wed, 28 Aug 2024 07:05:37 -0400 (EDT) (envelope-from sakib@darkstar.site) X-Outflank-Mailman: Message body and most headers restored to incoming version X-BeenThere: xen-devel@lists.xenproject.org List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Precedence: list Sender: "Xen-devel" X-Inumbo-ID: 779dc1ec-652d-11ef-99a0-01e77a169b0f DKIM-Signature: v=1; a=rsa-sha256; c=relaxed; d=pobox.com; h=from:to:cc :subject:date:message-id:in-reply-to:references:mime-version :content-transfer-encoding; s=sasl; bh=6fC74O0gmkPt/XZJaNayOLv0S GsSK/V8Gt9hWnpnSqs=; b=Fq640KPOPDSdRu1mvA5jJGuaCP+JBmyYKQuAdpJ8+ 2+r2wwkxIIVGx6/xDwG6OrK4SisdUrOdJfnBeT3aarDfvwfr/Ul7gblyioq2cnbw ucF1LqzU67kRKGwVIiSIroIeoaQ0vOFQJun9d4sdOePzzJmhWihwa+UCkyZ5kIlQ TU= From: Sergiy Kibrik To: xen-devel@lists.xenproject.org Cc: Xenia Ragiadakou , Andrew Cooper , Jan Beulich , Stefano Stabellini , Bertrand Marquis , Michal Orzel , Volodymyr Babchuk , =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= , Xenia Ragiadakou , Sergiy Kibrik , Julien Grall Subject: [XEN PATCH v7 1/2] ioreq: do not build arch_vcpu_ioreq_completion() for non-VMX configurations Date: Wed, 28 Aug 2024 14:05:34 +0300 Message-Id: <2e71667a06ece7f0d045c309d69bb73b99d6caa5.1724842645.git.Sergiy_Kibrik@epam.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: References: MIME-Version: 1.0 X-Pobox-Relay-ID: 7461714E-652D-11EF-88F4-2BAEEB2EC81B-90055647!pb-smtp1.pobox.com Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @pobox.com) X-ZM-MESSAGEID: 1724843162961116600 Content-Type: text/plain; charset="utf-8" From: Xenia Ragiadakou VIO_realmode_completion is specific to vmx realmode and thus the function arch_vcpu_ioreq_completion() has actual handling work only in VMX-enabled b= uild, as for the rest x86 and ARM build configurations it is basically a stub. Here a separate configuration option ARCH_VCPU_IOREQ_COMPLETION introduced = that tells whether the platform we're building for requires any specific ioreq completion handling. As of now only VMX has such requirement, so the option= is selected by INTEL_VMX, for other configurations a generic default stub is provided (it is ARM's version of arch_vcpu_ioreq_completion() moved to comm= on header). Signed-off-by: Xenia Ragiadakou Signed-off-by: Sergiy Kibrik Acked-by: Jan Beulich CC: Julien Grall Reviewed-by: Stefano Stabellini --- changes in v7: - comment in Kconfig adjusted - fixed patch description - updated tags changes in v6: - rename option ARCH_IOREQ_COMPLETION -> ARCH_VCPU_IOREQ_COMPLETION - put a comment with brief option's description changes in v5: - introduce ARCH_IOREQ_COMPLETION option & put arch_vcpu_ioreq_completion(= ) under it - description changed --- xen/Kconfig | 7 +++++++ xen/arch/arm/ioreq.c | 6 ------ xen/arch/x86/Kconfig | 1 + xen/arch/x86/hvm/ioreq.c | 2 ++ xen/include/xen/ioreq.h | 10 ++++++++++ 5 files changed, 20 insertions(+), 6 deletions(-) diff --git a/xen/Kconfig b/xen/Kconfig index e459cdac0c..72fdb83760 100644 --- a/xen/Kconfig +++ b/xen/Kconfig @@ -95,4 +95,11 @@ config LTO config ARCH_SUPPORTS_INT128 bool =20 +# +# For platforms that require specific handling of per-vCPU ioreq completion +# events +# +config ARCH_VCPU_IOREQ_COMPLETION + bool + source "Kconfig.debug" diff --git a/xen/arch/arm/ioreq.c b/xen/arch/arm/ioreq.c index 5df755b48b..2e829d2e7f 100644 --- a/xen/arch/arm/ioreq.c +++ b/xen/arch/arm/ioreq.c @@ -135,12 +135,6 @@ bool arch_ioreq_complete_mmio(void) return false; } =20 -bool arch_vcpu_ioreq_completion(enum vio_completion completion) -{ - ASSERT_UNREACHABLE(); - return true; -} - /* * The "legacy" mechanism of mapping magic pages for the IOREQ servers * is x86 specific, so the following hooks don't need to be implemented on= Arm: diff --git a/xen/arch/x86/Kconfig b/xen/arch/x86/Kconfig index 7ef5c8bc48..74e081c7bd 100644 --- a/xen/arch/x86/Kconfig +++ b/xen/arch/x86/Kconfig @@ -127,6 +127,7 @@ config AMD_SVM =20 config INTEL_VMX def_bool HVM + select ARCH_VCPU_IOREQ_COMPLETION =20 config XEN_SHSTK bool "Supervisor Shadow Stacks" diff --git a/xen/arch/x86/hvm/ioreq.c b/xen/arch/x86/hvm/ioreq.c index 4eb7a70182..5c3d0c69aa 100644 --- a/xen/arch/x86/hvm/ioreq.c +++ b/xen/arch/x86/hvm/ioreq.c @@ -29,6 +29,7 @@ bool arch_ioreq_complete_mmio(void) return handle_mmio(); } =20 +#ifdef CONFIG_VCPU_ARCH_IOREQ_COMPLETION bool arch_vcpu_ioreq_completion(enum vio_completion completion) { switch ( completion ) @@ -51,6 +52,7 @@ bool arch_vcpu_ioreq_completion(enum vio_completion compl= etion) =20 return true; } +#endif =20 static gfn_t hvm_alloc_legacy_ioreq_gfn(struct ioreq_server *s) { diff --git a/xen/include/xen/ioreq.h b/xen/include/xen/ioreq.h index cd399adf17..29a17e8ff5 100644 --- a/xen/include/xen/ioreq.h +++ b/xen/include/xen/ioreq.h @@ -111,7 +111,17 @@ void ioreq_domain_init(struct domain *d); int ioreq_server_dm_op(struct xen_dm_op *op, struct domain *d, bool *const= _op); =20 bool arch_ioreq_complete_mmio(void); + +#ifdef CONFIG_VCPU_ARCH_IOREQ_COMPLETION bool arch_vcpu_ioreq_completion(enum vio_completion completion); +#else +static inline bool arch_vcpu_ioreq_completion(enum vio_completion completi= on) +{ + ASSERT_UNREACHABLE(); + return true; +} +#endif + int arch_ioreq_server_map_pages(struct ioreq_server *s); void arch_ioreq_server_unmap_pages(struct ioreq_server *s); void arch_ioreq_server_enable(struct ioreq_server *s); --=20 2.25.1 From nobody Thu Sep 19 00:19:33 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) client-ip=192.237.175.120; envelope-from=xen-devel-bounces@lists.xenproject.org; helo=lists.xenproject.org; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=fail(p=quarantine dis=quarantine) header.from=epam.com ARC-Seal: i=1; a=rsa-sha256; t=1724843289; cv=none; d=zohomail.com; s=zohoarc; b=MzmMYO1p/yYCPbvimPti+z4TKR8GcMd3sHe9hSMex3VjIwsMoVSKZ3UGeKrJb3tWIhRWV6hU0CPGpkGr9+sMuEJcK542/dCqvnFyYfuvPDZDiVWl4aVm7S0NSeDGwvFdI+KxASpGJGK4rdD6MrW/VRJ36XPQLoQk0FGPRX+3JUc= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1724843289; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=rxCJt0x/c2/cb8QXELT7ZDedsbTyXODDdbb2kT/lJVc=; b=h7MSq9VS3aIz5Tz8YCWA/vtVLsV5jzMhk6OhaGoQb6loT1gM0wQjJw7KZF0sP4yK5Vnnl0AiFG7Zl1hUAGMdmqHMW/Sx8YJDNhC51wdXA+36K28ShYLuDylRnqM4wRMq6u3fOjRVQBv40T0hS2y7EupFb2C9kscmburZB5oLNgk= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=fail header.from= (p=quarantine dis=quarantine) Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 1724843289352693.4934020256321; Wed, 28 Aug 2024 04:08:09 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.784722.1194109 (Exim 4.92) (envelope-from ) id 1sjGWo-0000Xq-DY; Wed, 28 Aug 2024 11:07:54 +0000 Received: by outflank-mailman (output) from mailman id 784722.1194109; Wed, 28 Aug 2024 11:07:54 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1sjGWo-0000Xj-9Y; Wed, 28 Aug 2024 11:07:54 +0000 Received: by outflank-mailman (input) for mailman id 784722; Wed, 28 Aug 2024 11:07:53 +0000 Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50] helo=se1-gles-flk1.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1sjGWn-0000Xd-Kc for xen-devel@lists.xenproject.org; Wed, 28 Aug 2024 11:07:53 +0000 Received: from pb-smtp1.pobox.com (pb-smtp1.pobox.com [64.147.108.70]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS id c43a1cc4-652d-11ef-99a0-01e77a169b0f; Wed, 28 Aug 2024 13:07:51 +0200 (CEST) Received: from pb-smtp1.pobox.com (unknown [127.0.0.1]) by pb-smtp1.pobox.com (Postfix) with ESMTP id CA0A43DE20; Wed, 28 Aug 2024 07:07:50 -0400 (EDT) (envelope-from sakib@darkstar.site) Received: from pb-smtp1.nyi.icgroup.com (unknown [127.0.0.1]) by pb-smtp1.pobox.com (Postfix) with ESMTP id C198A3DE1F; Wed, 28 Aug 2024 07:07:50 -0400 (EDT) (envelope-from sakib@darkstar.site) Received: from localhost (unknown [46.211.119.31]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by pb-smtp1.pobox.com (Postfix) with ESMTPSA id D2C9C3DE1D; Wed, 28 Aug 2024 07:07:48 -0400 (EDT) (envelope-from sakib@darkstar.site) X-Outflank-Mailman: Message body and most headers restored to incoming version X-BeenThere: xen-devel@lists.xenproject.org List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Precedence: list Sender: "Xen-devel" X-Inumbo-ID: c43a1cc4-652d-11ef-99a0-01e77a169b0f DKIM-Signature: v=1; a=rsa-sha256; c=relaxed; d=pobox.com; h=from:to:cc :subject:date:message-id:in-reply-to:references:mime-version :content-transfer-encoding; s=sasl; bh=sYeNlXd320jgCemX/nEWnRjUu eRsq3RVfPj+4GsXNkw=; b=GcXpl1GP0Lk6uDIt92caFIryZ5FCjwSAmft4YfJeE 4Lk0Og3vowFZ4qniRf7vM9BHusiFtTeA+k49EYYP1waJVD3L/l+NeK8zQGTk628O M1BUXwqA1CKvWzS0w2pV34aFtGnG7ElQ5yuzTk/slRQlvLNxrBT6Kr9SsXBF1kfi pY= From: Sergiy Kibrik To: xen-devel@lists.xenproject.org Cc: Xenia Ragiadakou , Jan Beulich , Andrew Cooper , =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= , Stefano Stabellini , Xenia Ragiadakou , Sergiy Kibrik Subject: [XEN PATCH v7 2/2] x86/hvm: make AMD-V and Intel VT-x support configurable Date: Wed, 28 Aug 2024 14:07:45 +0300 Message-Id: X-Mailer: git-send-email 2.25.1 In-Reply-To: References: MIME-Version: 1.0 X-Pobox-Relay-ID: C2DA7960-652D-11EF-897D-2BAEEB2EC81B-90055647!pb-smtp1.pobox.com Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @pobox.com) X-ZM-MESSAGEID: 1724843291465116600 Content-Type: text/plain; charset="utf-8" From: Xenia Ragiadakou Provide the user with configuration control over the cpu virtualization sup= port in Xen by making AMD_SVM and INTEL_VMX options user selectable. To preserve the current default behavior, both options depend on HVM and default to value of HVM. To prevent users from unknowingly disabling virtualization support, make the controls user selectable only if EXPERT is enabled. No functional change intended. Signed-off-by: Xenia Ragiadakou Signed-off-by: Sergiy Kibrik Reviewed-by: Stefano Stabellini Acked-by: Jan Beulich --- changes in v6: - "default y" instead of "default HVM" changes in v5: - change kconfig option name SVM/VMX -> AMD_SVM/INTEL_VMX changes in v3: - only tags added --- xen/arch/x86/Kconfig | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/xen/arch/x86/Kconfig b/xen/arch/x86/Kconfig index 74e081c7bd..d0aaf359eb 100644 --- a/xen/arch/x86/Kconfig +++ b/xen/arch/x86/Kconfig @@ -123,11 +123,25 @@ config HVM If unsure, say Y. =20 config AMD_SVM - def_bool HVM + bool "AMD-V" if EXPERT + depends on HVM + default y + help + Enables virtual machine extensions on platforms that implement the + AMD Virtualization Technology (AMD-V). + If your system includes a processor with AMD-V support, say Y. + If in doubt, say Y. =20 config INTEL_VMX - def_bool HVM + bool "Intel VT-x" if EXPERT + depends on HVM + default y select ARCH_VCPU_IOREQ_COMPLETION + help + Enables virtual machine extensions on platforms that implement the + Intel Virtualization Technology (Intel VT-x). + If your system includes a processor with Intel VT-x support, say Y. + If in doubt, say Y. =20 config XEN_SHSTK bool "Supervisor Shadow Stacks" --=20 2.25.1