Commit d8d37ed8 authored by Philippe Gerum's avatar Philippe Gerum Committed by Jan Kiszka

cobalt/arm: disable unlocked context switching

Allowing the task context switching code to be preempted by local
interrupts was an optimization targeted at low-end ARM armv4/5 cores
with sluggish VIVT caches, at the expense of significant complexity in
the IRQ pipeline and Cobalt scheduler. Support for armv4/5 is long
gone for Xenomai, and maintaining such feature is not worth the burden
with the VIPT caches exhibited by current micro-architectures such as
armv7.

Dovetail provides some form of preemptible context switching of
in-band tasks specifically, which requires no support from Cobalt.

So we may disable this Cobalt-specific feature entirely for ARM.
Signed-off-by: Philippe Gerum's avatarPhilippe Gerum <rpm@xenomai.org>
Signed-off-by: Jan Kiszka's avatarJan Kiszka <jan.kiszka@siemens.com>
parent 1de59c7c
source "kernel/xenomai/Kconfig"
source "drivers/xenomai/Kconfig"
menu "Machine/platform-specific options"
config XENO_ARCH_UNLOCKED_SWITCH
bool "Unlocked context switch"
default y
help
The Cobalt core may allow non-atomic execution of the
machine-dependent context switching code, so that other CPUs
and/or local interrupts may execute concurrently.
This option reduces interrupt latency when costly cache and
TLB flushes are required to switch context.
You definitely want to enable that option on low-end ARM
platforms.
endmenu
config IPIPE_WANT_PREEMPTIBLE_SWITCH
bool
default y if XENO_ARCH_UNLOCKED_SWITCH
default n if !XENO_ARCH_UNLOCKED_SWITCH
config XENO_ARCH_FPU
def_bool VFP
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment