CONFIG_SCHED_SCALABLE

Red/black tree ready queue

Type: bool

Help

When selected, the scheduler ready queue will be implemented
as a red/black tree.  This has rather slower constant-time
insertion and removal overhead, and on most platforms (that
are not otherwise using the rbtree somewhere) requires an
extra ~2kb of code.  But the resulting behavior will scale
cleanly and quickly into the many thousands of threads.  Use
this on platforms where you may have many threads (very
roughly: more than 20 or so) marked as runnable at a given
time.  Most applications don't want this.

Direct dependencies

<choice SCHED_ALGORITHM: Scheduler priority queue algorithm>

(Includes any dependencies from ifs and menus.)

Kconfig definition

At <Zephyr>/kernel/Kconfig:228

Included via <Zephyr>/Kconfig:8<Zephyr>/Kconfig.zephyr:40

Menu path: (Top) → General Kernel Options → Scheduler priority queue algorithm

config SCHED_SCALABLE
    bool "Red/black tree ready queue"
    depends on <choice SCHED_ALGORITHM>
    help
      When selected, the scheduler ready queue will be implemented
      as a red/black tree.  This has rather slower constant-time
      insertion and removal overhead, and on most platforms (that
      are not otherwise using the rbtree somewhere) requires an
      extra ~2kb of code.  But the resulting behavior will scale
      cleanly and quickly into the many thousands of threads.  Use
      this on platforms where you may have many threads (very
      roughly: more than 20 or so) marked as runnable at a given
      time.  Most applications don't want this.

(The ‘depends on’ condition includes propagated dependencies from ifs and menus.)