All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Emil Tsalapatis" <emil@etsalapatis.com>
To: "Tejun Heo" <tj@kernel.org>, "Andrea Righi" <arighi@nvidia.com>,
	"Changwoo Min" <changwoo@igalia.com>,
	"David Vernet" <void@manifault.com>
Cc: <linux-kernel@vger.kernel.org>, <sched-ext@lists.linux.dev>,
	<stable@vger.kernel.org>
Subject: Re: [PATCH 1/2] sched_ext: Factor out local_dsq_post_enq() from dispatch_enqueue()
Date: Fri, 12 Dec 2025 00:50:22 -0500	[thread overview]
Message-ID: <DEW04ADT6JB8.1FATMFM1JFKA5@etsalapatis.com> (raw)
In-Reply-To: <20251212014504.3431169-2-tj@kernel.org>

On Thu Dec 11, 2025 at 8:45 PM EST, Tejun Heo wrote:
> Factor out local_dsq_post_enq() which performs post-enqueue handling for
> local DSQs - triggering resched_curr() if SCX_ENQ_PREEMPT is specified or if
> the current CPU is idle. No functional change.
>
> This will be used by the next patch to fix move_local_task_to_local_dsq().
>
> Cc: stable@vger.kernel.org # v6.12+
> Reviewed-by: Andrea Righi <arighi@nvidia.com>
> Signed-off-by: Tejun Heo <tj@kernel.org>
> ---

Reviewed-by: Emil Tsalapatis <emil@etsalapatis.com>

>  kernel/sched/ext.c | 34 +++++++++++++++++++---------------
>  1 file changed, 19 insertions(+), 15 deletions(-)
>
> diff --git a/kernel/sched/ext.c b/kernel/sched/ext.c
> index c4465ccefea4..c78efa99406f 100644
> --- a/kernel/sched/ext.c
> +++ b/kernel/sched/ext.c
> @@ -982,6 +982,22 @@ static void refill_task_slice_dfl(struct scx_sched *sch, struct task_struct *p)
>  	__scx_add_event(sch, SCX_EV_REFILL_SLICE_DFL, 1);
>  }
>  
> +static void local_dsq_post_enq(struct scx_dispatch_q *dsq, struct task_struct *p,
> +			       u64 enq_flags)
> +{
> +	struct rq *rq = container_of(dsq, struct rq, scx.local_dsq);
> +	bool preempt = false;
> +
> +	if ((enq_flags & SCX_ENQ_PREEMPT) && p != rq->curr &&
> +	    rq->curr->sched_class == &ext_sched_class) {
> +		rq->curr->scx.slice = 0;
> +		preempt = true;
> +	}
> +
> +	if (preempt || sched_class_above(&ext_sched_class, rq->curr->sched_class))
> +		resched_curr(rq);
> +}
> +
>  static void dispatch_enqueue(struct scx_sched *sch, struct scx_dispatch_q *dsq,
>  			     struct task_struct *p, u64 enq_flags)
>  {
> @@ -1093,22 +1109,10 @@ static void dispatch_enqueue(struct scx_sched *sch, struct scx_dispatch_q *dsq,
>  	if (enq_flags & SCX_ENQ_CLEAR_OPSS)
>  		atomic_long_set_release(&p->scx.ops_state, SCX_OPSS_NONE);
>  
> -	if (is_local) {
> -		struct rq *rq = container_of(dsq, struct rq, scx.local_dsq);
> -		bool preempt = false;
> -
> -		if ((enq_flags & SCX_ENQ_PREEMPT) && p != rq->curr &&
> -		    rq->curr->sched_class == &ext_sched_class) {
> -			rq->curr->scx.slice = 0;
> -			preempt = true;
> -		}
> -
> -		if (preempt || sched_class_above(&ext_sched_class,
> -						 rq->curr->sched_class))
> -			resched_curr(rq);
> -	} else {
> +	if (is_local)
> +		local_dsq_post_enq(dsq, p, enq_flags);
> +	else
>  		raw_spin_unlock(&dsq->lock);
> -	}
>  }
>  
>  static void task_unlink_from_dsq(struct task_struct *p,


  reply	other threads:[~2025-12-12  5:50 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-12-11 22:48 [PATCHSET sched_ext/for-6.19-fixes] sched_ext: Fix missing post-enqueue handling in move_local_task_to_local_dsq() Tejun Heo
2025-12-11 22:48 ` [PATCH 1/2] sched_ext: Factor out local_dsq_post_enq() from dispatch_enqueue() Tejun Heo
2025-12-11 23:23   ` Andrea Righi
2025-12-11 22:48 ` [PATCH 2/2] sched_ext: Fix missing post-enqueue handling in move_local_task_to_local_dsq() Tejun Heo
2025-12-11 23:27   ` Andrea Righi
2025-12-11 23:35   ` Christian Loehle
2025-12-12  1:34     ` Tejun Heo
2025-12-11 23:29 ` [PATCHSET sched_ext/for-6.19-fixes] " Andrea Righi
2025-12-12  1:45 ` [PATCHSET v2 " Tejun Heo
2025-12-12  1:45   ` [PATCH 1/2] sched_ext: Factor out local_dsq_post_enq() from dispatch_enqueue() Tejun Heo
2025-12-12  5:50     ` Emil Tsalapatis [this message]
2025-12-12  1:45   ` [PATCH 2/2] sched_ext: Fix missing post-enqueue handling in move_local_task_to_local_dsq() Tejun Heo
2025-12-12  5:57     ` Emil Tsalapatis
2025-12-12 16:28   ` [PATCHSET v2 sched_ext/for-6.19-fixes] " 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=DEW04ADT6JB8.1FATMFM1JFKA5@etsalapatis.com \
    --to=emil@etsalapatis.com \
    --cc=arighi@nvidia.com \
    --cc=changwoo@igalia.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=sched-ext@lists.linux.dev \
    --cc=stable@vger.kernel.org \
    --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.