From: Peter Zijlstra <peterz@infradead.org>
To: K Prateek Nayak <kprateek.nayak@amd.com>
Cc: Ingo Molnar <mingo@redhat.com>,
Juri Lelli <juri.lelli@redhat.com>,
Vincent Guittot <vincent.guittot@linaro.org>,
Dietmar Eggemann <dietmar.eggemann@arm.com>,
Steven Rostedt <rostedt@goodmis.org>,
Ben Segall <bsegall@google.com>, Mel Gorman <mgorman@suse.de>,
Valentin Schneider <vschneid@redhat.com>,
Aaron Lu <ziqianlu@bytedance.com>, Josh Don <joshdon@google.com>,
linux-kernel@vger.kernel.org
Subject: Re: [PATCH 5/5] sched/fair: Unify cfs_rq throttling via account_cfs_rq_runtime()
Date: Mon, 1 Jun 2026 15:48:42 +0200 [thread overview]
Message-ID: <20260601134842.GP343181@noisy.programming.kicks-ass.net> (raw)
In-Reply-To: <20260528094830.13291-6-kprateek.nayak@amd.com>
On Thu, May 28, 2026 at 09:48:30AM +0000, K Prateek Nayak wrote:
> @@ -9893,8 +9882,15 @@ static struct task_struct *pick_task_fair(struct rq *rq, struct rq_flags *rf)
> /* Might not have done put_prev_entity() */
> if (cfs_rq->curr && cfs_rq->curr->on_rq)
> update_curr(cfs_rq);
> -
> - throttled |= check_cfs_rq_runtime(cfs_rq);
> + /*
> + * For the current hierarchy, update_curr() above would
> + * have set the throttle indicators if the cfs_rq has
> + * run out of bandwidth. For others, enqueue / last
> + * update_curr() for the cfs_rq would have ensured the
> + * throttle indicators are set if bandwidth was not
> + * available.
> + */
> + throttled |= cfs_rq_throttled(cfs_rq);
>
> se = pick_next_entity(rq, cfs_rq, true);
> if (!se)
> @@ -15074,15 +15070,19 @@ static void __set_next_task_fair(struct rq *rq, struct task_struct *p, bool firs
> static void set_next_task_fair(struct rq *rq, struct task_struct *p, bool first)
> {
> struct sched_entity *se = &p->se;
> + bool throttled = false;
>
> for_each_sched_entity(se) {
> struct cfs_rq *cfs_rq = cfs_rq_of(se);
>
> set_next_entity(cfs_rq, se, first);
> /* ensure bandwidth has been allocated on our new cfs_rq */
> - account_cfs_rq_runtime(cfs_rq, 0);
> + throttled |= account_cfs_rq_runtime(cfs_rq, 0);
> }
>
> + if (throttled)
> + task_throttle_setup_work(p);
> +
> __set_next_task_fair(rq, p, first);
> }
(noticed while trying to rebase flat on top)
Why do we have both? Isn't just set_next_task_fair(.first=true)
sufficient?
next prev parent reply other threads:[~2026-06-01 13:48 UTC|newest]
Thread overview: 21+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-05-28 9:48 [PATCH 0/5] sched/fair: Allow account_cfs_rq_runtime() to throttle current hierarchy K Prateek Nayak
2026-05-28 9:48 ` [PATCH 1/5] sched/fair: Convert cfs bandwidth throttling to use guards K Prateek Nayak
2026-05-28 21:46 ` Benjamin Segall
2026-05-28 9:48 ` [PATCH 2/5] sched/fair: Use throttled_csd_list for local unthrottle K Prateek Nayak
2026-05-28 21:53 ` Benjamin Segall
2026-05-28 9:48 ` [PATCH 3/5] sched/fair: Call update_curr() before unthrottling the hierarchy K Prateek Nayak
2026-05-28 22:03 ` Benjamin Segall
2026-06-01 3:52 ` Aaron Lu
2026-06-01 5:50 ` K Prateek Nayak
2026-06-01 11:27 ` Peter Zijlstra
2026-06-02 6:33 ` K Prateek Nayak
2026-05-28 9:48 ` [PATCH 4/5] sched/fair: Move the throttled tasks to a local list in tg_unthrottle_up() K Prateek Nayak
2026-05-28 22:14 ` Benjamin Segall
2026-05-28 9:48 ` [PATCH 5/5] sched/fair: Unify cfs_rq throttling via account_cfs_rq_runtime() K Prateek Nayak
2026-05-28 22:44 ` Benjamin Segall
2026-06-01 13:48 ` Peter Zijlstra [this message]
2026-06-02 7:01 ` K Prateek Nayak
2026-06-02 8:32 ` Peter Zijlstra
2026-06-02 8:57 ` K Prateek Nayak
2026-05-28 11:45 ` [PATCH 0/5] sched/fair: Allow account_cfs_rq_runtime() to throttle current hierarchy Peter Zijlstra
2026-06-01 6:18 ` Aaron Lu
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=20260601134842.GP343181@noisy.programming.kicks-ass.net \
--to=peterz@infradead.org \
--cc=bsegall@google.com \
--cc=dietmar.eggemann@arm.com \
--cc=joshdon@google.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=rostedt@goodmis.org \
--cc=vincent.guittot@linaro.org \
--cc=vschneid@redhat.com \
--cc=ziqianlu@bytedance.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.