From patchwork Mon Jan 25 21:27:46 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Stefano Stabellini X-Patchwork-Id: 12044393 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-19.3 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 713BAC433E9 for ; Mon, 25 Jan 2021 21:28:04 +0000 (UTC) Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 04C4F20C56 for ; Mon, 25 Jan 2021 21:28:03 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 04C4F20C56 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=kernel.org Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=xen-devel-bounces@lists.xenproject.org Received: from list by lists.xenproject.org with outflank-mailman.74507.133952 (Exim 4.92) (envelope-from ) id 1l49Oq-00083B-ET; Mon, 25 Jan 2021 21:27:52 +0000 X-Outflank-Mailman: Message body and most headers restored to incoming version Received: by outflank-mailman (output) from mailman id 74507.133952; Mon, 25 Jan 2021 21:27:52 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1l49Oq-000832-AA; Mon, 25 Jan 2021 21:27:52 +0000 Received: by outflank-mailman (input) for mailman id 74507; Mon, 25 Jan 2021 21:27:51 +0000 Received: from all-amaz-eas1.inumbo.com ([34.197.232.57] helo=us1-amaz-eas2.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1l49Op-00082l-HY for xen-devel@lists.xenproject.org; Mon, 25 Jan 2021 21:27:51 +0000 Received: from mail.kernel.org (unknown [198.145.29.99]) by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS id d9dc86b9-3a35-466d-b1ab-631786eb3534; Mon, 25 Jan 2021 21:27:50 +0000 (UTC) Received: by mail.kernel.org (Postfix) with ESMTPSA id 8008D2083E; Mon, 25 Jan 2021 21:27:49 +0000 (UTC) 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: d9dc86b9-3a35-466d-b1ab-631786eb3534 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1611610069; bh=gD1DMhWE7ETLuEmFuN8ltYBg6hYGONqrJ9SvusFDw8U=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=mKB/cBhBPTYLp7hIiypWBRPf15AYKOVMCYhFdWvovHWBAJ1RhdTOpzPGlBh7svvoJ z17NMo+2NHiZbByygJ0vdx+u1hMtP9aJMiQ2VDUDOU+OYY+BrC11IX3hv7sIhdbR/D 2EBrWDEEqjuE9WeyirEq+ghyNOH8EiSQ7B+Z0llB6eLshFtXqVwA5PbBtYsb0rgafH LBpdLnTjxW6NgwKJbwzY8g05dCwIRdjkgW2B/Ry0nMez8XJM+jnmLLVSoER4yfgLzW SMRMEPWyPv9TArm3S3OrIo5hnh8WGTEWjDKY8cvQK8lHYQVnJkWWQyRDq9U/NwF52t LYu/MSvmAka8w== From: Stefano Stabellini To: xen-devel@lists.xenproject.org Cc: sstabellini@kernel.org, Stefano Stabellini , andrew.cooper3@citrix.com, george.dunlap@citrix.com, iwj@xenproject.org, jbeulich@suse.com, julien@xen.org, wl@xen.org Subject: [PATCH v4 1/2] xen: EXPERT clean-up and introduce UNSUPPORTED Date: Mon, 25 Jan 2021 13:27:46 -0800 Message-Id: <20210125212747.26676-1-sstabellini@kernel.org> X-Mailer: git-send-email 2.17.1 In-Reply-To: References: A recent thread [1] has exposed a couple of issues with our current way of handling EXPERT. 1) It is not obvious that "Configure standard Xen features (expert users)" is actually the famous EXPERT we keep talking about on xen-devel 2) It is not obvious when we need to enable EXPERT to get a specific feature In particular if you want to enable ACPI support so that you can boot Xen on an ACPI platform, you have to enable EXPERT first. But searching through the kconfig menu it is really not clear (type '/' and "ACPI"): nothing in the description tells you that you need to enable EXPERT to get the option. So this patch makes things easier by doing two things: - introduce a new kconfig option UNSUPPORTED which is clearly to enable UNSUPPORTED features as defined by SUPPORT.md - change EXPERT options to UNSUPPORTED where it makes sense: keep depending on EXPERT for features made for experts - tag unsupported features by adding (UNSUPPORTED) to the one-line description - clarify the EXPERT one-line description [1] https://marc.info/?l=xen-devel&m=160333101228981 Signed-off-by: Stefano Stabellini CC: andrew.cooper3@citrix.com CC: george.dunlap@citrix.com CC: iwj@xenproject.org CC: jbeulich@suse.com CC: julien@xen.org CC: wl@xen.org Reviewed-by: Jan Beulich Reviewed-by: Bertrand Marquis --- Changes in v4: - clarify support statement of UNSUPPORTED - move UNSUPPORTED past EXPERT - add default EXPERT to UNSUPPORTED Changes in v3: - improve UNSUPPORTED text description - avoid changing XEN_SHSTK and EFI_SET_VIRTUAL_ADDRESS_MAP - update HVM_FEP to be UNSUPPORTED Changes in v2: - introduce UNSUPPORTED - don't switch all EXPERT options to UNSUPPORTED See as reference the v2 thread here: https://marc.info/?l=xen-devel&m=160566066013723 --- xen/Kconfig | 11 ++++++++++- xen/arch/arm/Kconfig | 10 +++++----- xen/arch/x86/Kconfig | 6 +++--- xen/common/Kconfig | 2 +- xen/common/sched/Kconfig | 6 +++--- 5 files changed, 22 insertions(+), 13 deletions(-) diff --git a/xen/Kconfig b/xen/Kconfig index 34c318bfa2..bcbd2758e5 100644 --- a/xen/Kconfig +++ b/xen/Kconfig @@ -35,7 +35,7 @@ config DEFCONFIG_LIST default ARCH_DEFCONFIG config EXPERT - bool "Configure standard Xen features (expert users)" + bool "Configure EXPERT features" help This option allows certain base Xen options and settings to be disabled or tweaked. This is for specialized environments @@ -45,6 +45,15 @@ config EXPERT supported. default n +config UNSUPPORTED + bool "Configure UNSUPPORTED features" + default EXPERT + help + This option allows certain unsupported Xen options to be changed, + which includes non-security-supported, experimental, and tech + preview features as defined by SUPPORT.md. (Note that if an option + doesn't depend on UNSUPPORTED it doesn't imply that is supported.) + config LTO bool "Link Time Optimisation" depends on BROKEN diff --git a/xen/arch/arm/Kconfig b/xen/arch/arm/Kconfig index c3eb13ea73..cca76040e5 100644 --- a/xen/arch/arm/Kconfig +++ b/xen/arch/arm/Kconfig @@ -32,7 +32,7 @@ menu "Architecture Features" source "arch/Kconfig" config ACPI - bool "ACPI (Advanced Configuration and Power Interface) Support" if EXPERT + bool "ACPI (Advanced Configuration and Power Interface) Support (UNSUPPORTED)" if UNSUPPORTED depends on ARM_64 ---help--- @@ -49,7 +49,7 @@ config GICV3 If unsure, say Y config HAS_ITS - bool "GICv3 ITS MSI controller support" if EXPERT + bool "GICv3 ITS MSI controller support (UNSUPPORTED)" if UNSUPPORTED depends on GICV3 && !NEW_VGIC config HVM @@ -77,7 +77,7 @@ config SBSA_VUART_CONSOLE SBSA Generic UART implements a subset of ARM PL011 UART. config ARM_SSBD - bool "Speculative Store Bypass Disable" if EXPERT + bool "Speculative Store Bypass Disable (UNSUPPORTED)" if UNSUPPORTED depends on HAS_ALTERNATIVE default y help @@ -87,7 +87,7 @@ config ARM_SSBD If unsure, say Y. config HARDEN_BRANCH_PREDICTOR - bool "Harden the branch predictor against aliasing attacks" if EXPERT + bool "Harden the branch predictor against aliasing attacks (UNSUPPORTED)" if UNSUPPORTED default y help Speculation attacks against some high-performance processors rely on @@ -104,7 +104,7 @@ config HARDEN_BRANCH_PREDICTOR If unsure, say Y. config TEE - bool "Enable TEE mediators support" if EXPERT + bool "Enable TEE mediators support (UNSUPPORTED)" if UNSUPPORTED default n help This option enables generic TEE mediators support. It allows guests diff --git a/xen/arch/x86/Kconfig b/xen/arch/x86/Kconfig index 78f351f94b..302334d3e4 100644 --- a/xen/arch/x86/Kconfig +++ b/xen/arch/x86/Kconfig @@ -147,7 +147,7 @@ config BIGMEM If unsure, say N. config HVM_FEP - bool "HVM Forced Emulation Prefix support" if EXPERT + bool "HVM Forced Emulation Prefix support (UNSUPPORTED)" if UNSUPPORTED default DEBUG depends on HVM ---help--- @@ -166,7 +166,7 @@ config HVM_FEP If unsure, say N. config TBOOT - bool "Xen tboot support" if EXPERT + bool "Xen tboot support (UNSUPPORTED)" if UNSUPPORTED default y if !PV_SHIM_EXCLUSIVE select CRYPTO ---help--- @@ -252,7 +252,7 @@ config HYPERV_GUEST endif config MEM_SHARING - bool "Xen memory sharing support" if EXPERT + bool "Xen memory sharing support (UNSUPPORTED)" if UNSUPPORTED depends on HVM endmenu diff --git a/xen/common/Kconfig b/xen/common/Kconfig index b5c91a1664..39451e8350 100644 --- a/xen/common/Kconfig +++ b/xen/common/Kconfig @@ -272,7 +272,7 @@ config LATE_HWDOM If unsure, say N. config ARGO - bool "Argo: hypervisor-mediated interdomain communication" if EXPERT + bool "Argo: hypervisor-mediated interdomain communication (UNSUPPORTED)" if UNSUPPORTED ---help--- Enables a hypercall for domains to ask the hypervisor to perform data transfer of messages between domains. diff --git a/xen/common/sched/Kconfig b/xen/common/sched/Kconfig index 61231aacaa..94c9e20139 100644 --- a/xen/common/sched/Kconfig +++ b/xen/common/sched/Kconfig @@ -15,7 +15,7 @@ config SCHED_CREDIT2 optimized for lower latency and higher VM density. config SCHED_RTDS - bool "RTDS scheduler support (EXPERIMENTAL)" + bool "RTDS scheduler support (UNSUPPORTED)" if UNSUPPORTED default y ---help--- The RTDS scheduler is a soft and firm real-time scheduler for @@ -23,14 +23,14 @@ config SCHED_RTDS in the cloud, and general low-latency workloads. config SCHED_ARINC653 - bool "ARINC653 scheduler support (EXPERIMENTAL)" + bool "ARINC653 scheduler support (UNSUPPORTED)" if UNSUPPORTED default DEBUG ---help--- The ARINC653 scheduler is a hard real-time scheduler for single cores, targeted for avionics, drones, and medical devices. config SCHED_NULL - bool "Null scheduler support (EXPERIMENTAL)" + bool "Null scheduler support (UNSUPPORTED)" if UNSUPPORTED default y ---help--- The null scheduler is a static, zero overhead scheduler, From patchwork Mon Jan 25 21:27:47 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Stefano Stabellini X-Patchwork-Id: 12044391 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-19.3 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 284E1C433E0 for ; Mon, 25 Jan 2021 21:28:04 +0000 (UTC) Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id A1C962083E for ; Mon, 25 Jan 2021 21:28:03 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org A1C962083E Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=kernel.org Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=xen-devel-bounces@lists.xenproject.org Received: from list by lists.xenproject.org with outflank-mailman.74508.133964 (Exim 4.92) (envelope-from ) id 1l49Or-00084m-NF; Mon, 25 Jan 2021 21:27:53 +0000 X-Outflank-Mailman: Message body and most headers restored to incoming version Received: by outflank-mailman (output) from mailman id 74508.133964; Mon, 25 Jan 2021 21:27:53 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1l49Or-00084d-JL; Mon, 25 Jan 2021 21:27:53 +0000 Received: by outflank-mailman (input) for mailman id 74508; Mon, 25 Jan 2021 21:27:52 +0000 Received: from all-amaz-eas1.inumbo.com ([34.197.232.57] helo=us1-amaz-eas2.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1l49Op-00082l-VW for xen-devel@lists.xenproject.org; Mon, 25 Jan 2021 21:27:52 +0000 Received: from mail.kernel.org (unknown [198.145.29.99]) by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS id 31ed6c10-a7e6-48b4-b143-58e01f41e1d6; Mon, 25 Jan 2021 21:27:51 +0000 (UTC) Received: by mail.kernel.org (Postfix) with ESMTPSA id 206D820C56; Mon, 25 Jan 2021 21:27:50 +0000 (UTC) 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: 31ed6c10-a7e6-48b4-b143-58e01f41e1d6 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1611610070; bh=1iOlwII+Idef6Hga9XHHIhnZBrMhh2LQM78/STZV/E4=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=uvo51snmJjLAv2BHsrx+PeaAEhM7nKran3Gl4SRJTIsmkDYdduRutDe7ioKYb2qgh ClywjaawQvg7mTv46ZYtE2F87KMDSSHZW5cwIAl7JZbwNIJJY7g1ZJT1SNdBuYkArY W+CtGff57Bu/qYqkQWbobE3Ri7suzxPmAD7jicmdG1Ck6zy1SV7J/zGzIYzaUTbHVR qTq8P5rwnFXb5+kJu4hp8GSZ4mcjCrf1m/VomZ9yVYGd/hdMea3vtMKcaug8RalRzY KKtBJG6t+fdZtU2pFaCQTwDcnv4FZpEz8lf8Srqzd8FqUjQmyHd8btvmrguglTySpy DZKbDtWEexTfw== From: Stefano Stabellini To: xen-devel@lists.xenproject.org Cc: sstabellini@kernel.org, Stefano Stabellini , andrew.cooper3@citrix.com, george.dunlap@citrix.com, iwj@xenproject.org, jbeulich@suse.com, julien@xen.org, wl@xen.org Subject: [PATCH v4 2/2] xen: add (EXPERT) to one-line descriptions when appropriate Date: Mon, 25 Jan 2021 13:27:47 -0800 Message-Id: <20210125212747.26676-2-sstabellini@kernel.org> X-Mailer: git-send-email 2.17.1 In-Reply-To: References: Add an "(EXPERT)" tag to the one-line description of Kconfig options that depend on EXPERT. Signed-off-by: Stefano Stabellini CC: andrew.cooper3@citrix.com CC: george.dunlap@citrix.com CC: iwj@xenproject.org CC: jbeulich@suse.com CC: julien@xen.org CC: wl@xen.org Reviewed-by: Bertrand Marquis --- Changes in v4: - new patch --- xen/arch/x86/Kconfig | 2 +- xen/common/Kconfig | 12 ++++++------ xen/common/sched/Kconfig | 2 +- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/xen/arch/x86/Kconfig b/xen/arch/x86/Kconfig index 302334d3e4..3f630b89e8 100644 --- a/xen/arch/x86/Kconfig +++ b/xen/arch/x86/Kconfig @@ -103,7 +103,7 @@ config HVM If unsure, say Y. config XEN_SHSTK - bool "Supervisor Shadow Stacks" + bool "Supervisor Shadow Stacks (EXPERT)" depends on HAS_AS_CET_SS && EXPERT default y ---help--- diff --git a/xen/common/Kconfig b/xen/common/Kconfig index 39451e8350..b49127463d 100644 --- a/xen/common/Kconfig +++ b/xen/common/Kconfig @@ -12,7 +12,7 @@ config CORE_PARKING bool config GRANT_TABLE - bool "Grant table support" if EXPERT + bool "Grant table support (EXPERT)" if EXPERT default y ---help--- Grant table provides a generic mechanism to memory sharing @@ -151,7 +151,7 @@ config KEXEC If unsure, say Y. config EFI_SET_VIRTUAL_ADDRESS_MAP - bool "EFI: call SetVirtualAddressMap()" if EXPERT + bool "EFI: call SetVirtualAddressMap() (EXPERT)" if EXPERT ---help--- Call EFI SetVirtualAddressMap() runtime service to setup memory map for further runtime services. According to UEFI spec, it isn't strictly @@ -162,7 +162,7 @@ config EFI_SET_VIRTUAL_ADDRESS_MAP config XENOPROF def_bool y - prompt "Xen Oprofile Support" if EXPERT + prompt "Xen Oprofile Support (EXPERT)" if EXPERT depends on X86 ---help--- Xen OProfile (Xenoprof) is a system-wide profiler for Xen virtual @@ -199,7 +199,7 @@ config XSM_FLASK config XSM_FLASK_AVC_STATS def_bool y - prompt "Maintain statistics on the FLASK access vector cache" if EXPERT + prompt "Maintain statistics on the FLASK access vector cache (EXPERT)" if EXPERT depends on XSM_FLASK ---help--- Maintain counters on the access vector cache that can be viewed using @@ -344,7 +344,7 @@ config SUPPRESS_DUPLICATE_SYMBOL_WARNINGS build becoming overly verbose. config CMDLINE - string "Built-in hypervisor command string" if EXPERT + string "Built-in hypervisor command string (EXPERT)" if EXPERT default "" ---help--- Enter arguments here that should be compiled into the hypervisor @@ -377,7 +377,7 @@ config DOM0_MEM Leave empty if you are not sure what to specify. config TRACEBUFFER - bool "Enable tracing infrastructure" if EXPERT + bool "Enable tracing infrastructure (EXPERT)" if EXPERT default y ---help--- Enable tracing infrastructure and pre-defined tracepoints within Xen. diff --git a/xen/common/sched/Kconfig b/xen/common/sched/Kconfig index 94c9e20139..b6020a83c6 100644 --- a/xen/common/sched/Kconfig +++ b/xen/common/sched/Kconfig @@ -1,4 +1,4 @@ -menu "Schedulers" +menu "Schedulers (EXPERT)" visible if EXPERT config SCHED_CREDIT