:orphan: .. title:: CONFIG_USE_SWITCH .. kconfig:: CONFIG_USE_SWITCH CONFIG_USE_SWITCH ################# *Use new-style \_arch\_switch instead of arch\_swap* Type: ``bool`` Help ==== .. code-block:: none The _arch_switch() API is a lower level context switching primitive than the original arch_swap mechanism. It is required for an SMP-aware scheduler, or if the architecture does not provide arch_swap. In uniprocess situations where the architecture provides both, _arch_switch incurs more somewhat overhead and may be slower. Direct dependencies =================== \ :kconfig:`USE_SWITCH_SUPPORTED ` *(Includes any dependencies from ifs and menus.)* Defaults ======== No defaults. Implicitly defaults to ``n``. Symbols that select this symbol =============================== - \ :kconfig:`ISA_ARCV2 ` - \ :kconfig:`ISA_ARCV3 ` - \ :kconfig:`X86_64 ` - \ :kconfig:`ARM64 ` - \ :kconfig:`SPARC ` - \ :kconfig:`XTENSA ` Kconfig definition ================== At ``/Kconfig:776`` Included via ``Kconfig:8`` → ``Kconfig.zephyr:40`` Menu path: (Top) → General Kernel Options → SMP Options .. code-block:: kconfig config USE_SWITCH bool "Use new-style _arch_switch instead of arch_swap" depends on USE_SWITCH_SUPPORTED help The _arch_switch() API is a lower level context switching primitive than the original arch_swap mechanism. It is required for an SMP-aware scheduler, or if the architecture does not provide arch_swap. In uniprocess situations where the architecture provides both, _arch_switch incurs more somewhat overhead and may be slower. *(The 'depends on' condition includes propagated dependencies from ifs and menus.)*