diff options
| author | Tao Cui <cuitao@kylinos.cn> | 2026-09-02 10:48:12 +0800 |
|---|---|---|
| committer | Tejun Heo <tj@kernel.org> | 2026-09-01 20:35:23 -1000 |
| commit | bf2f23dc5a36237c0d4738966829e5cbde973c8a (patch) | |
| tree | 5ef299290f56de6225b038a7e92a42d558cda89d /scripts/Makefile.thinlto | |
| parent | 00d977d84226356fe766977d48bfbdf72169a281 (diff) | |
| download | linux-next-bf2f23dc5a36237c0d4738966829e5cbde973c8a.tar.gz linux-next-bf2f23dc5a36237c0d4738966829e5cbde973c8a.zip | |
sched_ext/scx_flatcg: Make cgv_node_less() wraparound-safe
cgv_node_less() compares cvtimes with a plain <, which misorders once
cvtime wraps: the wrapped node lands at the front of the tree while
the unwrapped ones get stuck behind it. Each CPU picking a cgroup
charges it a full slice, making wrap occur earlier than a naive
estimate might suggest.
Use time_before() instead. cgrp_cap_budget() bounds the lag behind
cvtime_now, while the lead is bounded by the slice charge plus pending
cvtime_delta on re-insertion, so the cyclic ordering assumptions of
time_before() hold.
Fixes: a4103eacc2ab ("sched_ext: Add a cgroup scheduler which uses flattened hierarchy")
Reported-by: Sashiko <sashiko-bot@kernel.org>
Link: https://lore.kernel.org/r/3f1ce004-e259-4e72-a5f7-14a5050053bd@linux.dev
Signed-off-by: Tao Cui <cuitao@kylinos.cn>
Signed-off-by: Tejun Heo <tj@kernel.org>
Diffstat (limited to 'scripts/Makefile.thinlto')
0 files changed, 0 insertions, 0 deletions
