firmware/shim: UNSUPPORTED=n
authorJan Beulich <jbeulich@suse.com>
Thu, 27 May 2021 12:39:33 +0000 (14:39 +0200)
committerJan Beulich <jbeulich@suse.com>
Thu, 27 May 2021 12:39:33 +0000 (14:39 +0200)
We shouldn't default to include any unsupported code in the shim. Mark
the setting as off, replacing the ARGO specification. This points out
anomalies with the scheduler configuration: Unsupported schedulers
better don't default to Y in release builds (like is already the case
for ARINC653). Without at least the SCHED_NULL adjustments, the shim
would suddenly build with RTDS as its default scheduler.

As a result, the SCHED_NULL setting can also be dropped from defconfig.

Clearly with the shim defaulting to it, SCHED_NULL must be supported at
least there.

Signed-off-by: Jan Beulich <jbeulich@suse.com>
Acked-by: Roger Pau Monné <roger.pau@citrix.com>
Reviewed-by: Dario Faggioli <dfaggioli@suse.com>
SUPPORT.md
xen/arch/x86/configs/pvshim_defconfig
xen/common/sched/Kconfig

index d0d4fc6f4f407c3f00370561d7be29d6979425b5..7a53635c9e8e145132f9097e8aa6acb79dbedaed 100644 (file)
@@ -351,9 +351,10 @@ Currently only single-vcpu domains are supported.
 A very simple, very static scheduling policy
 that always schedules the same vCPU(s) on the same pCPU(s).
 It is designed for maximum determinism and minimum overhead
-on embedded platforms.
+on embedded platforms and the x86 PV shim.
 
     Status: Experimental
+    Status, x86/shim: Supported
 
 ### NUMA scheduler affinity
 
index cdf57766109b7712c40be281dee8411a59648843..787376df5a27901097fe4da8762fce33c5aeaeef 100644 (file)
@@ -6,7 +6,6 @@ CONFIG_PV_SHIM=y
 CONFIG_PV_SHIM_EXCLUSIVE=y
 CONFIG_NR_CPUS=32
 CONFIG_EXPERT=y
-CONFIG_SCHED_NULL=y
 # Disable features not used by the PV shim
 # CONFIG_XEN_SHSTK is not set
 # CONFIG_GRANT_TABLE is not set
@@ -15,7 +14,7 @@ CONFIG_SCHED_NULL=y
 # CONFIG_KEXEC is not set
 # CONFIG_XENOPROF is not set
 # CONFIG_XSM is not set
-# CONFIG_ARGO is not set
+# CONFIG_UNSUPPORTED is not set
 # CONFIG_SCHED_CREDIT is not set
 # CONFIG_SCHED_CREDIT2 is not set
 # CONFIG_SCHED_RTDS is not set
index 94c9e201392a1e0e0178911c366587baa63803c2..3d9f9214b8cc86f32cddf28a56fa505cd53fdc1e 100644 (file)
@@ -16,7 +16,7 @@ config SCHED_CREDIT2
 
 config SCHED_RTDS
        bool "RTDS scheduler support (UNSUPPORTED)" if UNSUPPORTED
-       default y
+       default DEBUG
        ---help---
          The RTDS scheduler is a soft and firm real-time scheduler for
          multicore, targeted for embedded, automotive, graphics and gaming
@@ -31,7 +31,7 @@ config SCHED_ARINC653
 
 config SCHED_NULL
        bool "Null scheduler support (UNSUPPORTED)" if UNSUPPORTED
-       default y
+       default PV_SHIM || DEBUG
        ---help---
          The null scheduler is a static, zero overhead scheduler,
          for when there always are less vCPUs than pCPUs, typically
@@ -39,6 +39,7 @@ config SCHED_NULL
 
 choice
        prompt "Default Scheduler?"
+       default SCHED_NULL_DEFAULT if PV_SHIM_EXCLUSIVE
        default SCHED_CREDIT2_DEFAULT
 
        config SCHED_CREDIT_DEFAULT