From: "Aaron Lu" <ziqianlu@bytedance.com>
To: "K Prateek Nayak" <kprateek.nayak@amd.com>
Cc: "Ingo Molnar" <mingo@redhat.com>,
"Peter Zijlstra" <peterz@infradead.org>,
"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>,
"Josh Don" <joshdon@google.com>, <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH 0/5] sched/fair: Allow account_cfs_rq_runtime() to throttle current hierarchy
Date: Mon, 1 Jun 2026 14:18:32 +0800 [thread overview]
Message-ID: <20260601061832.GB690044@bytedance.com> (raw)
In-Reply-To: <20260528094830.13291-1-kprateek.nayak@amd.com>
Hi Prateek,
On Thu, May 28, 2026 at 09:48:25AM +0000, K Prateek Nayak wrote:
> The current hierarchy is always throttled in __schedule() during the
> pick when update_curr() detects a cfs_rq running out of the bandwidth
> and issues a resched.
>
> This was necessary prior to per-task throttling where the entire
> throttled hierarchy was dequeued at the point of first throttle during
> the pick but with per-task throttling, tasks continue to run as usual
> until they exit to userspace and dequeue themselves one-by-one until the
> hierarchy is deemed fully throttled and the PELT is frozen.
>
> throttle_cfs_rq() is now simply a propagator of throttle indicators and
> nothing more.
>
> Unify the throttling for current hierarchy under
> account_cfs_rq_runtime() which is responsible for the time accounting.
> If the bandwidth runs out, account_cfs_rq_runtime() will request for
> sched_cfs_bandwidth_slice() and mark the hierarchy as throttled if it
> fails to grab bandwidth.
>
> throttle_cfs_rq() will do a task_throttle_setup_work() if it finds the
> current task to be on a throttled hierarchy and the task will naturally
> dequeue itself when it exits to the userspace without needing an
> explicit resched.
>
> First four patches are cleanups and preparation for the final bit that
> switches over to using account_cfs_rq_runtime() for throttling which was
> provided by Peter in [1].
>
> Following are the results of running hackbench running 3 levels deep
> with the setup from "Testing" section on [2] when compared to
> tip:sched/core:
>
> kernel : tip tip + series
>
> Min : 207.33 202.20
> Max : 210.20 222.47
> Median : 207.83 218.33
> AMean : 208.29 215.36
> GMean : 208.29 215.25
> HMean : 208.29 215.13
> AMean Stddev : 1.02 7.37
> AMean CoefVar : 0.49 pct 3.42 pct
>
> All numbers are in seconds.
>
> There is a slight boot to boot variation for this benchmark but the
> utilization numbers in top is more or less similar between the two.
> Additional testing and feedback is always appreciated as usual :-)
I tested hackbench and netperf with quota set on a 2 sockets Intel EMR
and the result is in noise range.
Hackbench(in seconds, less is better)
base: 176.114420±2
head: 176.214394±3
Netperf(throughput, higher is better)
base: 14071, min/max: 13376/15261
head: 14769, min/max: 14095/15588
Feel free to add my tested-by tag after the clock warning is fixed in
patch 3.
prev parent reply other threads:[~2026-06-01 6:19 UTC|newest]
Thread overview: 21+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-05-28 9:48 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
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 [this message]
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=20260601061832.GB690044@bytedance.com \
--to=ziqianlu@bytedance.com \
--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=peterz@infradead.org \
--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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
Powered by JetHome