diff options
author | Tejun Heo <tj@kernel.org> | 2024-11-06 00:48:11 +0300 |
---|---|---|
committer | Tejun Heo <tj@kernel.org> | 2024-11-08 23:42:13 +0300 |
commit | 62dcbab8b0ef21729532600039fd514c09407092 (patch) | |
tree | 916f51fa69c1ccaec9d29e37657d4573115508d8 /tools/perf/scripts/python/task-analyzer.py | |
parent | f07b806ad8ebcca0a25738b78557736ef9674797 (diff) | |
download | linux-62dcbab8b0ef21729532600039fd514c09407092.tar.xz |
sched_ext: Avoid live-locking bypass mode switching
A poorly behaving BPF scheduler can live-lock the system by e.g. incessantly
banging on the same DSQ on a large NUMA system to the point where switching
to the bypass mode can take a long time. Turning on the bypass mode requires
dequeueing and re-enqueueing currently runnable tasks, if the DSQs that they
are on are live-locked, this can take tens of seconds cascading into other
failures. This was observed on 2 x Intel Sapphire Rapids machines with 224
logical CPUs.
Inject artifical delays while the bypass mode is switching to guarantee
timely completion.
While at it, move __scx_ops_bypass_lock into scx_ops_bypass() and rename it
to bypass_lock.
Signed-off-by: Tejun Heo <tj@kernel.org>
Reported-by: Valentin Andrei <vandrei@meta.com>
Reported-by: Patrick Lu <patlu@meta.com>
Diffstat (limited to 'tools/perf/scripts/python/task-analyzer.py')
0 files changed, 0 insertions, 0 deletions