[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[xen staging] xen: EXPERT clean-up and introduce UNSUPPORTED

commit d96e5e6c12145b4fc7b19b7b4751d20540061da0
Author:     Stefano Stabellini <stefano.stabellini@xxxxxxxxxx>
AuthorDate: Tue Jan 26 11:03:27 2021 -0800
Commit:     Stefano Stabellini <sstabellini@xxxxxxxxxx>
CommitDate: Thu Jan 28 16:34:01 2021 -0800

    xen: EXPERT clean-up and introduce UNSUPPORTED
    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
    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
    - clarify the EXPERT one-line description
    [1] https://marc.info/?l=xen-devel&m=160333101228981
    Signed-off-by: Stefano Stabellini <stefano.stabellini@xxxxxxxxxx>
    Reviewed-by: Jan Beulich <jbeulich@xxxxxxxx> [x86,common]
    Reviewed-by: Bertrand Marquis <bertrand.marquis@xxxxxxx>
    CC: andrew.cooper3@xxxxxxxxxx
    CC: george.dunlap@xxxxxxxxxx
    CC: iwj@xxxxxxxxxxxxxx
    CC: jbeulich@xxxxxxxx
    CC: julien@xxxxxxx
    CC: wl@xxxxxxx
 xen/Kconfig              | 11 ++++++++++-
 xen/arch/arm/Kconfig     |  6 +++---
 xen/arch/x86/Kconfig     |  6 +++---
 xen/common/Kconfig       |  2 +-
 xen/common/sched/Kconfig |  6 +++---
 5 files changed, 20 insertions(+), 11 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"
          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
        default n
+       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..330bbf6232 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 
+       bool "ACPI (Advanced Configuration and Power Interface) Support 
        depends on ARM_64
@@ -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
@@ -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
          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
@@ -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
@@ -252,7 +252,7 @@ config HYPERV_GUEST
-       bool "Xen memory sharing support" if EXPERT
+       bool "Xen memory sharing support (UNSUPPORTED)" if UNSUPPORTED
        depends on HVM
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 
          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
          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
          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
          The null scheduler is a static, zero overhead scheduler,
generated by git-patchbot for /home/xen/git/xen.git#staging



Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.