[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <Z36rxeV8n7H-o4cP@slm.duckdns.org>
Date: Wed, 8 Jan 2025 06:45:57 -1000
From: Tejun Heo <tj@...nel.org>
To: Henry Huang <henry.hj@...group.com>
Cc: void@...ifault.com, 谈鉴锋 <henry.tjf@...group.com>,
"Yan Yan(cailing)" <yanyan.yan@...group.com>,
linux-kernel@...r.kernel.org
Subject: Re: [PATCH v2] sched_ext: keep running prev when prev->scx.slice != 0
On Wed, Jan 08, 2025 at 04:47:10PM +0800, Henry Huang wrote:
> 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@...group.com>
Applied to sched_ext/for-6.13-fixes with a minor edit (see below).
> @@ -2747,6 +2747,7 @@ static int balance_one(struct rq *rq, struct task_struct *prev)
> {
> struct scx_dsp_ctx *dspc = this_cpu_ptr(scx_dsp_ctx);
> bool prev_on_scx = prev->sched_class == &ext_sched_class;
> + bool prev_on_rq = (prev->scx.flags & SCX_TASK_QUEUED) != 0;
I dropped `!= 0` as the bool assignment cast already implies boolean
conversion.
Thanks.
--
tejun
Powered by blists - more mailing lists