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

[RFC PATCH] xen: EXPERT clean-up



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:

- rename the EXPERT description to clarify the option and make sure to
include the word "EXPERT" in the oneliner

- instead of using "if EXPERT" add EXPERT as a dependency so that when
searching for a feature on the menu you are told that you need to enable
EXPERT to get the option

[1] https://marc.info/?l=xen-devel&m=160333101228981

Signed-off-by: Stefano Stabellini <stefano.stabellini@xxxxxxxxxx>
CC: andrew.cooper3@xxxxxxxxxx
CC: george.dunlap@xxxxxxxxxx
CC: iwj@xxxxxxxxxxxxxx
CC: jbeulich@xxxxxxxx
CC: julien@xxxxxxx
CC: wl@xxxxxxx
---
 xen/Kconfig              | 13 ++++++-------
 xen/arch/arm/Kconfig     | 18 ++++++++++--------
 xen/arch/x86/Kconfig     | 11 ++++++-----
 xen/common/Kconfig       | 21 ++++++++++++++-------
 xen/common/sched/Kconfig |  2 +-
 5 files changed, 37 insertions(+), 28 deletions(-)

diff --git a/xen/Kconfig b/xen/Kconfig
index 34c318bfa2..5fa2716e2d 100644
--- a/xen/Kconfig
+++ b/xen/Kconfig
@@ -35,14 +35,13 @@ 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
-         which can tolerate a "non-standard" Xen.
-         Only use this if you really know what you are doing.
-         Xen binaries built with this option enabled are not security
-         supported.
+         This option allows certain experimental (see SUPPORT.md) Xen
+         options and settings to be enabled/disabled. This is for
+         specialized environments which can tolerate a "non-standard" Xen.
+         Only use this if you really know what you are doing.  Xen binaries
+         built with this option enabled are not security supported.
        default n
 
 config LTO
diff --git a/xen/arch/arm/Kconfig b/xen/arch/arm/Kconfig
index 2777388265..0223cf11c6 100644
--- a/xen/arch/arm/Kconfig
+++ b/xen/arch/arm/Kconfig
@@ -32,8 +32,8 @@ menu "Architecture Features"
 source "arch/Kconfig"
 
 config ACPI
-       bool "ACPI (Advanced Configuration and Power Interface) Support" if 
EXPERT
-       depends on ARM_64
+       bool "ACPI (Advanced Configuration and Power Interface) Support"
+       depends on ARM_64 && EXPERT
        ---help---
 
          Advanced Configuration and Power Interface (ACPI) support for Xen is
@@ -49,8 +49,8 @@ config GICV3
          If unsure, say Y
 
 config HAS_ITS
-        bool "GICv3 ITS MSI controller support" if EXPERT
-        depends on GICV3 && !NEW_VGIC
+        bool "GICv3 ITS MSI controller support"
+        depends on GICV3 && !NEW_VGICi && EXPERT
 
 config HVM
         def_bool y
@@ -79,8 +79,8 @@ config SBSA_VUART_CONSOLE
          SBSA Generic UART implements a subset of ARM PL011 UART.
 
 config ARM_SSBD
-       bool "Speculative Store Bypass Disable" if EXPERT
-       depends on HAS_ALTERNATIVE
+       bool "Speculative Store Bypass Disable"
+       depends on HAS_ALTERNATIVE && EXPERT
        default y
        help
          This enables mitigation of bypassing of previous stores by speculative
@@ -89,7 +89,8 @@ 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"
+       depends on EXPERT
        default y
        help
          Speculation attacks against some high-performance processors rely on
@@ -106,7 +107,8 @@ config HARDEN_BRANCH_PREDICTOR
          If unsure, say Y.
 
 config TEE
-       bool "Enable TEE mediators support" if EXPERT
+       bool "Enable TEE mediators support"
+       depends on EXPERT
        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 24868aa6ad..071bfbbc40 100644
--- a/xen/arch/x86/Kconfig
+++ b/xen/arch/x86/Kconfig
@@ -146,9 +146,9 @@ config BIGMEM
          If unsure, say N.
 
 config HVM_FEP
-       bool "HVM Forced Emulation Prefix support" if EXPERT
+       bool "HVM Forced Emulation Prefix support"
        default DEBUG
-       depends on HVM
+       depends on HVM && EXPERT
        ---help---
 
          Compiles in a feature that allows HVM guest to arbitrarily
@@ -165,8 +165,9 @@ config HVM_FEP
          If unsure, say N.
 
 config TBOOT
-       bool "Xen tboot support" if EXPERT
+       bool "Xen tboot support"
        default y if !PV_SHIM_EXCLUSIVE
+       depends on EXPERT
        select CRYPTO
        ---help---
          Allows support for Trusted Boot using the Intel(R) Trusted Execution
@@ -251,8 +252,8 @@ config HYPERV_GUEST
 endif
 
 config MEM_SHARING
-       bool "Xen memory sharing support" if EXPERT
-       depends on HVM
+       bool "Xen memory sharing support"
+       depends on HVM && EXPERT
 
 endmenu
 
diff --git a/xen/common/Kconfig b/xen/common/Kconfig
index 3e2cf25088..7a8c54e66c 100644
--- a/xen/common/Kconfig
+++ b/xen/common/Kconfig
@@ -12,7 +12,8 @@ config CORE_PARKING
        bool
 
 config GRANT_TABLE
-       bool "Grant table support" if EXPERT
+       bool "Grant table support"
+       depends on EXPERT
        default y
        ---help---
          Grant table provides a generic mechanism to memory sharing
@@ -151,7 +152,8 @@ config KEXEC
          If unsure, say Y.
 
 config EFI_SET_VIRTUAL_ADDRESS_MAP
-    bool "EFI: call SetVirtualAddressMap()" if EXPERT
+    bool "EFI: call SetVirtualAddressMap()"
+    depends on 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 +164,8 @@ config EFI_SET_VIRTUAL_ADDRESS_MAP
 
 config XENOPROF
        def_bool y
-       prompt "Xen Oprofile Support" if EXPERT
+       prompt "Xen Oprofile Support"
+       depends on EXPERT
        depends on X86
        ---help---
          Xen OProfile (Xenoprof) is a system-wide profiler for Xen virtual
@@ -199,7 +202,8 @@ 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"
+       depends on EXPERT
        depends on XSM_FLASK
        ---help---
          Maintain counters on the access vector cache that can be viewed using
@@ -272,7 +276,8 @@ config LATE_HWDOM
          If unsure, say N.
 
 config ARGO
-       bool "Argo: hypervisor-mediated interdomain communication" if EXPERT
+       bool "Argo: hypervisor-mediated interdomain communication"
+       depends on EXPERT
        ---help---
          Enables a hypercall for domains to ask the hypervisor to perform
          data transfer of messages between domains.
@@ -344,7 +349,8 @@ 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"
+       depends on EXPERT
        default ""
        ---help---
          Enter arguments here that should be compiled into the hypervisor
@@ -377,7 +383,8 @@ 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"
+       depends on 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 61231aacaa..ec0385cd07 100644
--- a/xen/common/sched/Kconfig
+++ b/xen/common/sched/Kconfig
@@ -1,5 +1,5 @@
 menu "Schedulers"
-       visible if EXPERT
+       depends on EXPERT
 
 config SCHED_CREDIT
        bool "Credit scheduler support"
-- 
2.17.1




 


Rackspace

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