From: Peter Zijlstra <peterz@infradead.org>
To: K Prateek Nayak <kprateek.nayak@amd.com>
Cc: Vincent Guittot <vincent.guittot@linaro.org>,
mingo@redhat.com, juri.lelli@redhat.com,
dietmar.eggemann@arm.com, rostedt@goodmis.org,
bsegall@google.com, mgorman@suse.de, vschneid@redhat.com,
linux-kernel@vger.kernel.org, qyousef@layalina.io
Subject: Re: [PATCH 6/6 v3] sched/eevdf: Speedup short slice task scheduling
Date: Fri, 26 Jun 2026 08:41:19 +0200 [thread overview]
Message-ID: <20260626064119.GF1181229@noisy.programming.kicks-ass.net> (raw)
In-Reply-To: <9a7608a5-d164-4b1c-93d9-6a7431b7a896@amd.com>
On Fri, Jun 26, 2026 at 09:27:41AM +0530, K Prateek Nayak wrote:
> Hello Peter,
>
> On 6/26/2026 3:58 AM, Peter Zijlstra wrote:
> > +static u64 ineligible_vruntime(struct cfs_rq *cfs_rq)
> > +{
> > + struct sched_entity *curr = cfs_rq->curr;
> > + long weight = cfs_rq->sum_weight;
> > + s64 delta = 0;
> > +
> > + if (curr && !curr->on_rq)
> > + curr = NULL;
> > +
> > + /*
> > + * This is called from set_next_task_fair(.first=true) /
> > + * set_protect_slice() so curr had better be set and on_rq.
> > + */
> > + WARN_ON_ONCE(!curr);
>
> set_protect_slice() is indeed called from set_next_entity(.first=true)
> but it is done after __dequeue_entity() and before "cfs_rq->curr" is
> set (both sched/flat and sched/core have the same pattern).
>
> You should be hitting this splat very easily unless you have moved
> set_protect_slice() after the setting of cfs_rq->curr in your tree.
| static void set_next_task_fair(struct rq *rq, struct task_struct *p, bool first)
| {
| struct sched_entity *se = &p->se;
| bool throttled = false;
| struct cfs_rq *cfs_rq = &rq->cfs;
| unsigned long weight = NICE_0_LOAD;
| bool on_rq = se->on_rq;
|
| clear_buddies(cfs_rq, se);
|
| if (on_rq)
| __dequeue_entity(cfs_rq, se);
XXX
|
| for_each_sched_entity(se) {
| cfs_rq = cfs_rq_of(se);
|
| if (!IS_ENABLED(CONFIG_FAIR_GROUP_SCHED) ||
| !first || !cfs_rq->h_curr)
| set_next_entity(cfs_rq, se);
|
| /* ensure bandwidth has been allocated on our new cfs_rq */
| throttled |= account_cfs_rq_runtime(cfs_rq, 0);
|
| if (on_rq)
| weight = __calc_prop_weight(cfs_rq, se, weight);
| }
|
| if (throttled)
| task_throttle_setup_work(p);
|
| se = &p->se;
| cfs_rq->curr = se;
XXX
|
| if (on_rq) {
| reweight_eevdf(cfs_rq, se, weight, se->on_rq);
| if (first)
| set_protect_slice(cfs_rq, se);
XXX
| }
|
| if (task_on_rq_queued(p)) {
| /*
| * Move the next running task to the front of the list, so our
| * cfs_tasks list becomes MRU one.
| */
| list_move(&se->group_node, &rq->cfs_tasks);
| }
| if (!first)
| return;
|
| WARN_ON_ONCE(se->sched_delayed);
|
| if (hrtick_enabled_fair(rq))
| hrtick_start_fair(rq, p);
|
| update_misfit_status(p, rq);
| sched_fair_update_stop_tick(rq, p);
| }
Is what it looks like here. Anyway, let me actually build it and try ;-)
next prev parent reply other threads:[~2026-06-26 6:41 UTC|newest]
Thread overview: 44+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-06-24 15:12 [PATCH 0/6 v3] sched/eevdf: Improve scheduling latency of short slice task Vincent Guittot
2026-06-24 15:12 ` [PATCH 1/6 v3] sched/fair: Set next buddy for preempt short Vincent Guittot
2026-06-25 6:24 ` K Prateek Nayak
2026-06-25 12:40 ` Vincent Guittot
2026-06-25 12:43 ` Peter Zijlstra
2026-06-26 6:54 ` Peter Zijlstra
2026-06-26 7:02 ` Vincent Guittot
2026-06-26 8:08 ` Peter Zijlstra
2026-06-26 8:55 ` Vincent Guittot
2026-06-30 9:03 ` [tip: sched/core] " tip-bot2 for Vincent Guittot
2026-06-24 15:12 ` [PATCH 2/6 v3] sched/eevdf: Take into account current's lag when updating slice protection Vincent Guittot
2026-06-30 9:03 ` [tip: sched/core] " tip-bot2 for Vincent Guittot
2026-06-24 15:12 ` [PATCH 3/6 v3] sched/eevdf: Update slice protection even when resched is already set Vincent Guittot
2026-06-26 7:21 ` Peter Zijlstra
2026-06-26 7:46 ` Peter Zijlstra
2026-06-30 9:03 ` [tip: sched/core] sched/core: Fix inter-class wakeup_preempt() tip-bot2 for Peter Zijlstra
2026-06-30 9:03 ` [tip: sched/core] sched/eevdf: Update slice protection even when resched is already set tip-bot2 for Vincent Guittot
2026-06-24 15:12 ` [PATCH 4/6 v3] sched/eevdf: Cancel slice protection if short slice task is eligible Vincent Guittot
2026-06-25 6:00 ` K Prateek Nayak
2026-06-25 12:40 ` Vincent Guittot
2026-06-26 5:51 ` Shubhang Kaushik
2026-06-26 7:39 ` Vincent Guittot
2026-06-30 9:03 ` [tip: sched/core] " tip-bot2 for Vincent Guittot
2026-06-24 15:12 ` [PATCH 5/6 v3] sched/eevdf: Always update slice protection Vincent Guittot
2026-06-30 9:03 ` [tip: sched/core] " tip-bot2 for Vincent Guittot
2026-06-24 15:12 ` [PATCH 6/6 v3] sched/eevdf: Speedup short slice task scheduling Vincent Guittot
2026-06-25 7:37 ` K Prateek Nayak
2026-06-25 8:37 ` Peter Zijlstra
2026-06-25 10:09 ` Peter Zijlstra
2026-06-25 12:57 ` Vincent Guittot
2026-06-25 12:59 ` Vincent Guittot
2026-06-25 22:28 ` Peter Zijlstra
2026-06-26 3:57 ` K Prateek Nayak
2026-06-26 6:41 ` Peter Zijlstra [this message]
2026-06-26 7:05 ` Vincent Guittot
2026-06-26 7:18 ` Peter Zijlstra
2026-06-26 7:54 ` Peter Zijlstra
2026-06-26 8:55 ` Vincent Guittot
2026-06-26 13:55 ` Vincent Guittot
2026-06-29 14:25 ` Vincent Guittot
2026-06-25 14:55 ` Vincent Guittot
2026-06-25 12:51 ` Vincent Guittot
2026-06-25 8:33 ` Peter Zijlstra
2026-06-30 9:03 ` [tip: sched/core] " tip-bot2 for Vincent Guittot
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=20260626064119.GF1181229@noisy.programming.kicks-ass.net \
--to=peterz@infradead.org \
--cc=bsegall@google.com \
--cc=dietmar.eggemann@arm.com \
--cc=juri.lelli@redhat.com \
--cc=kprateek.nayak@amd.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mgorman@suse.de \
--cc=mingo@redhat.com \
--cc=qyousef@layalina.io \
--cc=rostedt@goodmis.org \
--cc=vincent.guittot@linaro.org \
--cc=vschneid@redhat.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.