From: Peter Zijlstra <peterz@infradead.org>
To: Huaixin Chang <changhuaixin@linux.alibaba.com>
Cc: bsegall@google.com, dietmar.eggemann@arm.com,
juri.lelli@redhat.com, khlebnikov@yandex-team.ru,
linux-kernel@vger.kernel.org, mgorman@suse.de, mingo@redhat.com,
pauld@redhead.com, pjt@google.com, rostedt@goodmis.org,
shanpeic@linux.alibaba.com, vincent.guittot@linaro.org,
xiyou.wangcong@gmail.com
Subject: Re: [PATCH v3 1/4] sched/fair: Introduce primitives for CFS bandwidth burst
Date: Wed, 10 Mar 2021 13:39:49 +0100 [thread overview]
Message-ID: <YEi+FVH5ovbC5uDh@hirez.programming.kicks-ass.net> (raw)
In-Reply-To: <20210121110453.18899-2-changhuaixin@linux.alibaba.com>
On Thu, Jan 21, 2021 at 07:04:50PM +0800, Huaixin Chang wrote:
> In this patch, we introduce the notion of CFS bandwidth burst. Unused
> "quota" from pervious "periods" might be accumulated and used in the
> following "periods". The maximum amount of accumulated bandwidth is
> bounded by "burst". And the maximun amount of CPU a group can consume in
> a given period is "buffer" which is equivalent to "quota" + "burst in
> case that this group has done enough accumulation.
>
> Signed-off-by: Huaixin Chang <changhuaixin@linux.alibaba.com>
> Signed-off-by: Shanpei Chen <shanpeic@linux.alibaba.com>
Not a valid SoB chain.
> ---
> kernel/sched/core.c | 91 ++++++++++++++++++++++++++++++++++++++++++++--------
> kernel/sched/fair.c | 2 ++
> kernel/sched/sched.h | 2 ++
> 3 files changed, 82 insertions(+), 13 deletions(-)
>
> diff --git a/kernel/sched/core.c b/kernel/sched/core.c
> index e7e453492cff..48d3bad12be2 100644
> --- a/kernel/sched/core.c
> +++ b/kernel/sched/core.c
> @@ -7895,10 +7895,12 @@ static const u64 max_cfs_runtime = MAX_BW * NSEC_PER_USEC;
>
> static int __cfs_schedulable(struct task_group *tg, u64 period, u64 runtime);
>
> -static int tg_set_cfs_bandwidth(struct task_group *tg, u64 period, u64 quota)
> +static int tg_set_cfs_bandwidth(struct task_group *tg, u64 period, u64 quota,
> + u64 burst)
Non standard indentation.
> {
> int i, ret = 0, runtime_enabled, runtime_was_enabled;
> struct cfs_bandwidth *cfs_b = &tg->cfs_bandwidth;
> + u64 buffer;
>
> if (tg == &root_task_group)
> return -EINVAL;
> @@ -7925,6 +7927,16 @@ static int tg_set_cfs_bandwidth(struct task_group *tg, u64 period, u64 quota)
> if (quota != RUNTIME_INF && quota > max_cfs_runtime)
> return -EINVAL;
>
> + /*
> + * Bound burst to defend burst against overflow during bandwidth shift.
> + */
> + if (burst > max_cfs_runtime)
> + return -EINVAL;
> +
> + if (quota == RUNTIME_INF)
> + buffer = RUNTIME_INF;
> + else
> + buffer = min(max_cfs_runtime, quota + burst);
Why do we care about buffer when RUNTIME_INF?
next prev parent reply other threads:[~2021-03-10 12:41 UTC|newest]
Thread overview: 38+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-12-17 7:46 [PATCH 0/4] sched/fair: Burstable CFS bandwidth controller Huaixin Chang
2020-12-17 7:46 ` [PATCH 1/4] sched/fair: Introduce primitives for CFS bandwidth burst Huaixin Chang
2020-12-17 13:36 ` Peter Zijlstra
2020-12-21 13:53 ` changhuaixin
2021-01-12 9:21 ` changhuaixin
2020-12-17 7:46 ` [PATCH 2/4] sched/fair: Make CFS bandwidth controller burstable Huaixin Chang
2020-12-18 9:53 ` kernel test robot
2020-12-17 7:46 ` [PATCH 3/4] sched/fair: Add cfs bandwidth burst statistics Huaixin Chang
2020-12-17 7:46 ` [PATCH 4/4] sched/fair: Add document for burstable CFS bandwidth control Huaixin Chang
2020-12-17 21:25 ` [PATCH 0/4] sched/fair: Burstable CFS bandwidth controller Benjamin Segall
2021-01-20 12:27 ` [PATCH v2 " Huaixin Chang
2021-01-20 12:27 ` [PATCH 1/4] sched/fair: Introduce primitives for CFS bandwidth burst Huaixin Chang
2021-01-20 12:27 ` [PATCH 2/4] sched/fair: Make CFS bandwidth controller burstable Huaixin Chang
2021-01-20 17:06 ` kernel test robot
2021-01-20 18:33 ` kernel test robot
2021-01-20 22:01 ` kernel test robot
2021-01-20 22:01 ` [RFC PATCH] sched/fair: __refill_cfs_bandwidth_runtime() can be static kernel test robot
2021-01-20 12:27 ` [PATCH 3/4] sched/fair: Add cfs bandwidth burst statistics Huaixin Chang
2021-01-20 12:27 ` [PATCH 4/4] sched/fair: Add document for burstable CFS bandwidth control Huaixin Chang
2021-01-20 19:48 ` Randy Dunlap
2021-01-21 11:04 ` [PATCH v3 0/4] sched/fair: Burstable CFS bandwidth controller Huaixin Chang
2021-01-21 11:04 ` [PATCH v3 1/4] sched/fair: Introduce primitives for CFS bandwidth burst Huaixin Chang
2021-03-10 12:39 ` Peter Zijlstra [this message]
2021-01-21 11:04 ` [PATCH v3 2/4] sched/fair: Make CFS bandwidth controller burstable Huaixin Chang
2021-03-10 13:04 ` Peter Zijlstra
2021-03-12 13:54 ` changhuaixin
2021-03-16 10:55 ` Peter Zijlstra
2021-01-21 11:04 ` [PATCH v3 3/4] sched/fair: Add cfs bandwidth burst statistics Huaixin Chang
2021-03-10 13:10 ` Peter Zijlstra
2021-01-21 11:04 ` [PATCH v3 4/4] sched/fair: Add document for burstable CFS bandwidth control Huaixin Chang
2021-03-10 13:17 ` Peter Zijlstra
2021-01-26 10:18 ` [PATCH v3 0/4] sched/fair: Burstable CFS bandwidth controller changhuaixin
2021-03-10 12:26 ` Peter Zijlstra
2021-02-09 13:17 ` Odin Ugedal
2021-02-09 10:28 ` Tejun Heo
2021-02-27 13:48 ` changhuaixin
2021-03-10 11:11 ` Odin Ugedal
2021-03-12 13:26 ` changhuaixin
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=YEi+FVH5ovbC5uDh@hirez.programming.kicks-ass.net \
--to=peterz@infradead.org \
--cc=bsegall@google.com \
--cc=changhuaixin@linux.alibaba.com \
--cc=dietmar.eggemann@arm.com \
--cc=juri.lelli@redhat.com \
--cc=khlebnikov@yandex-team.ru \
--cc=linux-kernel@vger.kernel.org \
--cc=mgorman@suse.de \
--cc=mingo@redhat.com \
--cc=pauld@redhead.com \
--cc=pjt@google.com \
--cc=rostedt@goodmis.org \
--cc=shanpeic@linux.alibaba.com \
--cc=vincent.guittot@linaro.org \
--cc=xiyou.wangcong@gmail.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
all inboxes | Powered by JetHome®