All of lore.kernel.org
 help / color / mirror / Atom feed
From: Andrea Righi <arighi@nvidia.com>
To: Tejun Heo <tj@kernel.org>
Cc: David Vernet <void@manifault.com>,
	Changwoo Min <changwoo@igalia.com>,
	sched-ext@lists.linux.dev, Emil Tsalapatis <emil@etsalapatis.com>,
	linux-kernel@vger.kernel.org, Kuba Piecuch <jpiecuch@google.com>
Subject: Re: [PATCH v3] sched_ext: Don't warn on core-sched forced idle in put_prev_task_scx()
Date: Tue, 30 Jun 2026 06:40:06 +0200	[thread overview]
Message-ID: <akNIpkhGj05-1KLP@gpd4> (raw)
In-Reply-To: <20260629225548.3562257-1-tj@kernel.org>

On Mon, Jun 29, 2026 at 12:55:48PM -1000, Tejun Heo wrote:
> put_prev_task_scx() warns when a runnable task drops to a lower sched_class
> without SCX_OPS_ENQ_LAST, on the assumption that balance_one() would have
> kept it running. Core scheduling breaks that: a forced-idle SMT sibling
> reschedules through the core_pick fast path in pick_next_task(), which skips
> pick_task_scx() and thus balance_one(), so a runnable task can drop to idle
> with ENQ_LAST unset.
> 
> Gate the warning on sched_cpu_cookie_match(): a cookie mismatch means core
> scheduling forced the idle, while a match (or core scheduling off) still
> catches a genuine missing-ENQ_LAST drop.
> 
> v3: Gate the warning on sched_cpu_cookie_match() so it is suppressed only on
>     the forced-idle CPU instead of whenever core scheduling is enabled, so a
>     genuine missing-ENQ_LAST drop is still caught (Andrea Righi).
> v2: Reworded the description (Kuba Piecuch).
> 
> Fixes: 7c65ae81ea86 ("sched_ext: Don't call put_prev_task_scx() before picking the next task")
> Signed-off-by: Tejun Heo <tj@kernel.org>

Looks good.

Reviewed-by: Andrea Righi <arighi@nvidia.com>

Thanks,
-Andrea

> ---
>  kernel/sched/ext/ext.c | 9 +++++++--
>  1 file changed, 7 insertions(+), 2 deletions(-)
> 
> diff --git a/kernel/sched/ext/ext.c b/kernel/sched/ext/ext.c
> index 3b2e13bc924b..e75e2fd5ab7e 100644
> --- a/kernel/sched/ext/ext.c
> +++ b/kernel/sched/ext/ext.c
> @@ -3090,9 +3090,14 @@ static void put_prev_task_scx(struct rq *rq, struct task_struct *p,
>  		 * sched_class, %SCX_OPS_ENQ_LAST must be set. Tell
>  		 * ops.enqueue() that @p is the only one available for this cpu,
>  		 * which should trigger an explicit follow-up scheduling event.
> +		 *
> +		 * Core scheduling can force this CPU idle while @p stays
> +		 * runnable. @p's cookie then won't match the core's, so skip
> +		 * the warning in that case.
>  		 */
>  		if (next && sched_class_above(&ext_sched_class, next->sched_class)) {
> -			WARN_ON_ONCE(!(sch->ops.flags & SCX_OPS_ENQ_LAST));
> +			WARN_ON_ONCE(sched_cpu_cookie_match(rq, p) &&
> +				     !(sch->ops.flags & SCX_OPS_ENQ_LAST));
>  			do_enqueue_task(rq, p, SCX_ENQ_LAST, -1);
>  		} else {
>  			do_enqueue_task(rq, p, 0, -1);

  reply	other threads:[~2026-06-30  4:40 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-06-29 22:55 [PATCH v3] sched_ext: Don't warn on core-sched forced idle in put_prev_task_scx() Tejun Heo
2026-06-30  4:40 ` Andrea Righi [this message]
2026-06-30  9:54 ` Aiqun(Maria) Yu
2026-06-30 14:24 ` Tejun Heo

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=akNIpkhGj05-1KLP@gpd4 \
    --to=arighi@nvidia.com \
    --cc=changwoo@igalia.com \
    --cc=emil@etsalapatis.com \
    --cc=jpiecuch@google.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=sched-ext@lists.linux.dev \
    --cc=tj@kernel.org \
    --cc=void@manifault.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.