On 3/6/2025 4:35 AM, Juri Lelli wrote: > Hi Joel, > > On 05/03/25 20:10, Joel Fernandes wrote: >> Currently, RCU boost testing in rcutorture is broken because it relies on >> having RT throttling disabled. This means the test will always pass (or >> rarely fail). This occurs because recently, RT throttling was replaced >> by DL server which boosts CFS tasks even when rcutorture tried to >> disable throttling (see rcu_torture_disable_rt_throttle()). However, the >> systctl_sched_rt_runtime variable is not considered thus still allowing >> RT tasks to be preempted by CFS tasks. >> >> Therefore this patch prevents DL server from starting when RCU torture >> sets the sysctl_sched_rt_runtime to -1. >> >> With this patch, boosting in TREE09 fails reliably if RCU_BOOST=n. >> >> Steven also mentioned that this could fix RT usecases where users do not >> want DL server to be interfering. >> >> Cc: stable@xxxxxxxxxxxxxxx >> Cc: Paul E. McKenney <paulmck@xxxxxxxxxx> >> Cc: Steven Rostedt <rostedt@xxxxxxxxxxx> >> Fixes: cea5a3472ac4 ("sched/fair: Cleanup fair_server") >> Signed-off-by: Joel Fernandes <joelagnelf@xxxxxxxxxx> >> --- >> v1->v2: >> Updated Fixes tag (Steven) >> Moved the stoppage of DL server to fair (Juri) > > I think what I suggested/wondered (sorry if I wasn't clear) is that we > might need a link between sched_rt_runtime and the fair_server per-cpu > runtime under sched/debug (i.e., sched_fair_write(), etc), otherwise one > can end up with DL server disabled and still non zero runtime on the > debug interface. This is only if we want to make that link, though; > which I am not entirely sure it is something we want to do, as we will > be stuck with an old/legacy interface if we do. Peter? > This is true. I was thinking more from a FAIR PoV. rt_bandwidth_enabled() is a generic function that's also called from the DL code. So I didn't per-se look at it like an DL server interface thing. But you also do have a point and curious to hear what Peter has to say. thanks, - Joel