mirror of
https://github.com/sched-ext/scx.git
synced 2024-11-28 05:30:24 +00:00
c20a19c946
During ttwu, the kernel may decide to skip ->select_task_rq() (e.g., when only one CPU is allowed or migration is disabled). This causes to call ops.enqueue() directly without having a chance to call ops.select_cpu(). Therefore, introduce a new flag (select_cpu_done) in the local task context to determine if ops.select_cpu() was bypassed and, in that case, attempt to find an idle CPU directly from ops.enqueue(). In the future this information will be supplied by the kernel through a special enqueue flag (SCX_ENQ_CPU_SELECTED) [1]. However, the custom flag in the local task context ensures to reliably determine the same information, even on older kernels where this flag is not available. [1] https://lore.kernel.org/lkml/20240928003840.GA2717@maniforge/T Signed-off-by: Andrea Righi <andrea.righi@linux.dev> |
||
---|---|---|
.. | ||
scx_bpfland | ||
scx_lavd | ||
scx_layered | ||
scx_mitosis | ||
scx_rlfifo | ||
scx_rustland | ||
scx_rusty | ||
.gitignore | ||
README.md |
RUST SCHEDULERS
Introduction
This directory contains schedulers with user space rust components.
The README in each scheduler directory provides some background and describes the types of workloads or scenarios they're designed to accommodate. For more details on any of these schedulers, please see the header comment in their main.rs or *.bpf.c files.