summaryrefslogtreecommitdiff
path: root/tools/perf/scripts/python/task-analyzer.py
diff options
context:
space:
mode:
authorTejun Heo <tj@kernel.org>2024-11-06 00:48:11 +0300
committerTejun Heo <tj@kernel.org>2024-11-08 23:42:13 +0300
commit62dcbab8b0ef21729532600039fd514c09407092 (patch)
tree916f51fa69c1ccaec9d29e37657d4573115508d8 /tools/perf/scripts/python/task-analyzer.py
parentf07b806ad8ebcca0a25738b78557736ef9674797 (diff)
downloadlinux-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