Messages in this thread | ![/](/images/icornerl.gif) | | Date | Mon, 22 Apr 2024 13:17:44 +0200 | From | Peter Zijlstra <> | Subject | Re: [PATCH v2] sched/eevdf: Prevent vlag from going out of bounds when reweight_eevdf |
| |
On Mon, Apr 22, 2024 at 07:07:25PM +0800, Xuewen Yan wrote: > On Mon, Apr 22, 2024 at 5:42 PM Peter Zijlstra <peterz@infradead.org> wrote: > > > > On Mon, Apr 22, 2024 at 04:33:37PM +0800, Xuewen Yan wrote: > > > > > On the Android system, the nice value of a task will change very > > > frequently. The limit can also be exceeded. > > > Maybe the !on_rq case is still necessary. > > > So I'm planning to propose another patch for !on_rq case later after > > > careful testing locally. > > > > So the scaling is: vlag = vlag * old_Weight / weight > > > > But given that integer devision is truncating, you could expect repeated > > application of such scaling would eventually decrease the vlag instead > > of grow it. > > > > Is there perhaps an invocation of reweight_task() missing? Looking at > > Is it necessary to add reweight_task in the prio_changed_fair()?
I think that's the wrong place. Note how __setscheduler_params() already has set_load_weight(). And all other callers of ->prio_changed() already seem to do set_load_weight() as well.
But that idle policy thing there still looks wrong, that sets the weight very low but doesn't re-adjust anything.
| ![\](/images/icornerr.gif) |