[PATCH v3 0/2] sched_ext: document and enforce vtime ordering constraints

From: Tao Cui

Date: Tue Sep 01 2026 - 22:49:39 EST


From: Tao Cui <cuitao@xxxxxxxxxx>

Patch 1 documents the rolling-cursor requirement for vtime ordering in
scx_bpf_dsq_insert_vtime(). Patch 2 fixes scx_flatcg's comparator to
use the cyclic comparison, which is correct there because
cgrp_cap_budget() upholds that requirement.

Changes since v2:
- 1/2: "less than 2^63 apart" (not "within"), folded into the paragraph
above
- 2/2: use time_before() instead of open-coded comparison, drop the
comment, fix the wrap direction and timing, state both lag and lead
bounds, Fixes corrected to upstream a4103eacc2ab (Tejun)

Changes since v1:
- drop 1/2 (kernel priq comparator change): the cyclic ordering is
the documented contract; a plain comparison causes unbounded
starvation at the natural wrap (Andrea, Tejun)
- new 1/2: document the rolling-cursor requirement instead
- 2/2 (flatcg) unchanged


Tao Cui (2):
sched_ext: document the rolling-cursor requirement for dsq_vtime
sched_ext/scx_flatcg: make cgv_node_less() wraparound-safe

kernel/sched/ext/ext.c | 4 +++-
tools/sched_ext/scx_flatcg.bpf.c | 2 +-
2 files changed, 4 insertions(+), 2 deletions(-)

--
2.43.0