Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

sched_ext: Documentation: Update sched-ext.rst

- Remove CONFIG_PAHOLE_HAS_BTF_TAG from required config list
- Document ext_idle.c as the built-in idle CPU selection policy
- Add descriptions for example schedulers in tools/sched_ext/

Signed-off-by: Cheng-Yang Chou <yphbchou0911@gmail.com>
Signed-off-by: Tejun Heo <tj@kernel.org>

authored by

Cheng-Yang Chou and committed by
Tejun Heo
2a0596d5 1dde5025

+25 -2
+25 -2
Documentation/scheduler/sched-ext.rst
··· 43 43 CONFIG_DEBUG_INFO_BTF=y 44 44 CONFIG_BPF_JIT_ALWAYS_ON=y 45 45 CONFIG_BPF_JIT_DEFAULT_ON=y 46 - CONFIG_PAHOLE_HAS_BTF_TAG=y 47 46 48 47 sched_ext is used only when the BPF scheduler is loaded and running. 49 48 ··· 345 346 The functions prefixed with ``scx_bpf_`` can be called from the BPF 346 347 scheduler. 347 348 349 + * ``kernel/sched/ext_idle.c`` contains the built-in idle CPU selection policy. 350 + 348 351 * ``tools/sched_ext/`` hosts example BPF scheduler implementations. 349 352 350 353 * ``scx_simple[.bpf].c``: Minimal global FIFO scheduler example using a ··· 355 354 * ``scx_qmap[.bpf].c``: A multi-level FIFO scheduler supporting five 356 355 levels of priority implemented with ``BPF_MAP_TYPE_QUEUE``. 357 356 357 + * ``scx_central[.bpf].c``: A central FIFO scheduler where all scheduling 358 + decisions are made on one CPU, demonstrating ``LOCAL_ON`` dispatching, 359 + tickless operation, and kthread preemption. 360 + 361 + * ``scx_cpu0[.bpf].c``: A scheduler that queues all tasks to a shared DSQ 362 + and only dispatches them on CPU0 in FIFO order. Useful for testing bypass 363 + behavior. 364 + 365 + * ``scx_flatcg[.bpf].c``: A flattened cgroup hierarchy scheduler 366 + implementing hierarchical weight-based cgroup CPU control by compounding 367 + each cgroup's share at every level into a single flat scheduling layer. 368 + 369 + * ``scx_pair[.bpf].c``: A core-scheduling example that always makes 370 + sibling CPU pairs execute tasks from the same CPU cgroup. 371 + 372 + * ``scx_sdt[.bpf].c``: A variation of ``scx_simple`` demonstrating BPF 373 + arena memory management for per-task data. 374 + 375 + * ``scx_userland[.bpf].c``: A minimal scheduler demonstrating user space 376 + scheduling. Tasks with CPU affinity are direct-dispatched in FIFO order; 377 + all others are scheduled in user space by a simple vruntime scheduler. 378 + 358 379 ABI Instability 359 380 =============== 360 381 361 382 The APIs provided by sched_ext to BPF schedulers programs have no stability 362 383 guarantees. This includes the ops table callbacks and constants defined in 363 384 ``include/linux/sched/ext.h``, as well as the ``scx_bpf_`` kfuncs defined in 364 - ``kernel/sched/ext.c``. 385 + ``kernel/sched/ext.c`` and ``kernel/sched/ext_idle.c``. 365 386 366 387 While we will attempt to provide a relatively stable API surface when 367 388 possible, they are subject to change without warning between kernel