Lines Matching full:smp
16 SMP configuration is controlled under the :kconfig:option:`CONFIG_SMP` kconfig
17 variable. This must be set to "y" to enable SMP features, otherwise
32 primitives all behave identically under an SMP kernel. For example
48 SMP systems provide a more constrained :c:func:`k_spin_lock` primitive
80 SMP systems with identical semantics to their legacy versions. They
90 impact, however. Unlike uniprocessor apps, SMP apps using
93 IRQ lock is global, means that code expecting to be run in an SMP
124 SMP Boot Process
127 A Zephyr SMP kernel begins boot identically to a uniprocessor kernel.
133 calls :c:func:`z_smp_init` to launch the SMP initialization process. This
142 The local SMP initialization (:c:func:`smp_init_top`) on each CPU is then
149 guarantee that all SMP initialization is complete before any Zephyr
156 :alt: SMP Initialization
159 Example SMP initialization process, showing a configuration with
181 So where possible, Zephyr SMP architectures should implement an
191 Note that not all SMP architectures will have a usable IPI mechanism
197 complicated in SMP: for the case where a thread is actually running on
220 that power constrained SMP applications are always going to provide an
224 SMP Kernel Internals
227 In general, Zephyr kernel code is SMP-agnostic and, like application
236 CPU in SMP mode. For example, the ``_current`` thread pointer obviously
256 global "idle thread" at the lowest priority, in SMP we may need one
260 known static variable. In SMP mode, idle threads are distinguished by
272 offset. That technique will not work in SMP, because the other CPU
277 Instead, the SMP "switch to" decision needs to be made synchronously
280 somewhat lower-level context switch primitives for SMP systems:
314 Note that while SMP requires :kconfig:option:`CONFIG_USE_SWITCH`, the reverse is not