[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [PATCH v2] firmware/shim: UNSUPPORTED=n
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@xxxxxxxx> Acked-by: Roger Pau Monné <roger.pau@xxxxxxxxxx> --- v2: Also drop SCHED_NULL setting from defconfig. Make SCHED_NULL the default when PV_SHIM_EXCLUSIVE. --- I'm certainly open to consider alterations on the sched/Kconfig adjustments, but _something_ needs to be done there. In particular I was puzzled to find the NULL scheduler marked unsupported. Clearly with the shim defaulting to it, it must be supported at least there. In a PV_SHIM (but perhaps !PV_SHIM_EXCLUSIVE) build with the build-time default not being SCHED_NULL, when actually running as shim I can't seem to see how the null scheduler would get chosen as the default nevertheless. Shouldn't this happen (in the absence of a command line override)? --- a/SUPPORT.md +++ b/SUPPORT.md @@ -351,9 +351,10 @@ Currently only single-vcpu domains are s 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 --- a/xen/arch/x86/configs/pvshim_defconfig +++ b/xen/arch/x86/configs/pvshim_defconfig @@ -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 --- a/xen/common/sched/Kconfig +++ b/xen/common/sched/Kconfig @@ -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
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |