diff options
| author | Peter Zijlstra <peterz@infradead.org> | 2026-02-03 11:05:12 +0100 |
|---|---|---|
| committer | Peter Zijlstra <peterz@infradead.org> | 2026-02-03 12:04:18 +0100 |
| commit | 5a40a9bb56d455e7548ba4b6d7787918323cbaf0 (patch) | |
| tree | cb6aaa9edb0fbbe06272a5f2ad19fbfbfba44cd2 /tools/perf/lib/Documentation/tutorial/git@git.tavy.me:linux.git | |
| parent | 76d12132ba459ab929cb66eb2030c666aacdb69a (diff) | |
sched/debug: Fix dl_server (re)start conditions
There are two problems with sched_server_write_common() that can cause the
dl_server to malfunction upon attempting to change the parameters:
1) when, after having disabled the dl_server by setting runtime=0, it is
enabled again while tasks are already enqueued. In this case is_active would
still be 0 and dl_server_start() would not be called.
2) when dl_server_apply_params() would fail, runtime is not applied and does
not reflect the new state.
Instead have dl_server_start() check its actual dl_runtime, and have
sched_server_write_common() unconditionally (re)start the dl_server. It will
automatically stop if there isn't anything to do, so spurious activation is
harmless -- while failing to start it is a problem.
While there, move the printk out of the locked region and make it symmetric,
also printing on enable.
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Link: https://patch.msgid.link/20260203103407.GK1282955@noisy.programming.kicks-ass.net
Diffstat (limited to 'tools/perf/lib/Documentation/tutorial/git@git.tavy.me:linux.git')
0 files changed, 0 insertions, 0 deletions
