-
CONFIG_KERNEL_COHERENCE
¶
Place all shared data into coherent memory
Type: bool
Help¶
When available and selected, the kernel will build in a mode where all shared data is placed in multiprocessor-coherent (generally “uncached”) memory. Thread stacks will remain cached, as will application memory declared with __incoherent. This is intended for Zephyr SMP kernels running on cache-incoherent architectures only. Note that when this is selected, there is an implicit API change that assumes cache coherence to any memory passed to the kernel. Code that creates kernel data structures in uncached regions may fail strangely. Some assertions exist to catch these mistakes, but not all circumstances can be tested.
Default¶
y if
ARCH_HAS_COHERENCE
&&SMP
&&MP_NUM_CPUS
> 1
Symbols selected by this symbol¶
Kconfig definition¶
At <Zephyr>/kernel/Kconfig:837
Included via <Zephyr>/Kconfig:8
→ <Zephyr>/Kconfig.zephyr:30
Menu path: (Top) → General Kernel Options → SMP Options
config KERNEL_COHERENCE bool "Place all shared data into coherent memory" default y ifARCH_HAS_COHERENCE
&&SMP
&&MP_NUM_CPUS
> 1 selectTHREAD_STACK_INFO
help When available and selected, the kernel will build in a mode where all shared data is placed in multiprocessor-coherent (generally "uncached") memory. Thread stacks will remain cached, as will application memory declared with __incoherent. This is intended for Zephyr SMP kernels running on cache-incoherent architectures only. Note that when this is selected, there is an implicit API change that assumes cache coherence to any memory passed to the kernel. Code that creates kernel data structures in uncached regions may fail strangely. Some assertions exist to catch these mistakes, but not all circumstances can be tested.
(The ‘depends on’ condition includes propagated dependencies from ifs and menus.)