]> git.ipfire.org Git - thirdparty/kernel/stable.git/commit
sched_ext: keep running prev when prev->scx.slice != 0
authorHenry Huang <henry.hj@antgroup.com>
Wed, 8 Jan 2025 08:47:10 +0000 (16:47 +0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 23 Jan 2025 16:22:56 +0000 (17:22 +0100)
commitfdb13258ad86f1235b50cc638ca8914c879ed9bd
tree4bd2d4096d864159d93df30461d1f32b9b6b7439
parentd9157d15ded506dfcb2a19c8d1d2cdf68c6732c9
sched_ext: keep running prev when prev->scx.slice != 0

[ Upstream commit 30dd3b13f9de612ef7328ccffcf1a07d0d40ab51 ]

When %SCX_OPS_ENQ_LAST is set and prev->scx.slice != 0,
@prev will be dispacthed into the local DSQ in put_prev_task_scx().
However, pick_task_scx() is executed before put_prev_task_scx(),
so it will not pick @prev.
Set %SCX_RQ_BAL_KEEP in balance_one() to ensure that pick_task_scx()
can pick @prev.

Signed-off-by: Henry Huang <henry.hj@antgroup.com>
Acked-by: Andrea Righi <arighi@nvidia.com>
Signed-off-by: Tejun Heo <tj@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
kernel/sched/ext.c