sched/eevdf: Fix miscalculation in reweight_entity() when se is not curr
authorTianchen Ding <dtcccc@linux.alibaba.com>
Wed, 6 Mar 2024 02:21:33 +0000 (10:21 +0800)
committerPeter Zijlstra <peterz@infradead.org>
Mon, 22 Apr 2024 11:01:26 +0000 (13:01 +0200)
commitafae8002b4fd3560c8f5f1567f3c3202c30a70fa
tree0c2bb2420c07352f18b64f7a7ca3fed7f1c81ab7
parent11b1b8bc2b98e21ddf47e08b56c21502c685b2c3
sched/eevdf: Fix miscalculation in reweight_entity() when se is not curr

reweight_eevdf() only keeps V unchanged inside itself. When se !=
cfs_rq->curr, it would be dequeued from rb tree first. So that V is
changed and the result is wrong. Pass the original V to reweight_eevdf()
to fix this issue.

Fixes: eab03c23c2a1 ("sched/eevdf: Fix vruntime adjustment on reweight")
Signed-off-by: Tianchen Ding <dtcccc@linux.alibaba.com>
[peterz: flip if() condition for clarity]
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Reviewed-by: Abel Wu <wuyun.abel@bytedance.com>
Link: https://lkml.kernel.org/r/20240306022133.81008-3-dtcccc@linux.alibaba.com
kernel/sched/fair.c