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
SMP
&&MP_NUM_CPUS
> 1
Symbols selected by this symbol
Kconfig definition
At <Zephyr>/kernel/Kconfig:860
Included via <Zephyr>/Kconfig:8
→ <Zephyr>/Kconfig.zephyr:40
Menu path: (Top) → General Kernel Options → SMP Options
config KERNEL_COHERENCE
bool "Place all shared data into coherent memory"
default y if SMP && MP_NUM_CPUS > 1
select THREAD_STACK_INFO
depends on ARCH_HAS_COHERENCE
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.)