:orphan: .. title:: CONFIG_KERNEL_COHERENCE .. kconfig:: CONFIG_KERNEL_COHERENCE CONFIG_KERNEL_COHERENCE ####################### *Place all shared data into coherent memory* Type: ``bool`` Help ==== .. code-block:: none 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. Direct dependencies =================== \ :kconfig:`ARCH_HAS_COHERENCE ` *(Includes any dependencies from ifs and menus.)* Default ======= - y if \ :kconfig:`SMP ` && \ :kconfig:`MP_NUM_CPUS ` > 1 Symbols selected by this symbol =============================== - \ :kconfig:`THREAD_STACK_INFO ` Kconfig definition ================== At ``/Kconfig:837`` Included via ``Kconfig:8`` → ``Kconfig.zephyr:40`` Menu path: (Top) → General Kernel Options → SMP Options .. code-block:: kconfig 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.)*