From: Konstantin Khlebnikov <khlebnikov@yandex-team.ru>
To: Peter Zijlstra <peterz@infradead.org>,
Ingo Molnar <mingo@redhat.com>,
linux-kernel@vger.kernel.org
Cc: Tejun Heo <tj@kernel.org>,
cgroups@vger.kernel.org, containers@lists.linux-foundation.org
Subject: [PATCH RFC 0/3] sched/fair: cpu time reserves for cgroups
Date: Mon, 16 May 2016 12:36:19 +0300 [thread overview]
Message-ID: <146339085068.25295.7687045977863852568.stgit@buzz> (raw)
This feature allows to change cpu cgroup weight for a limited time.
Cgroup interface:
cpu.cfs_reserve_us - reserved time for each cpu.cfs_period_us
cpu.cfs_reserve_shares - group weight during reserved time
While cfs group consumes reserved cpu time it has different weight,
thus it gets different vruntime penalty for that execution.
^ weight
|
|
reserve |
shares -------*
| |
| |
| |
shares - *-----------------*
| |
| |
0------|-----------------|-----------> time
reserve quota
Reserve can work as a "low limit": boost weight for "guaranteed" time,
and as a "high limit": give normal weight for a limited time and allow
utilize cpu when nobody else needs it.
Sample setup:
level | shares reserve shares
--------+----------------------------
high | 1024*16 1024*16*16
normal | 1024 1024*16
low | 1024/16 1024
In this way cgroups are devided into three levels.
During reserved time they are promoted to the next level.
---
Konstantin Khlebnikov (3):
sched/fair: call __refill_cfs_bandwidth_runtime only for finite quota
sched/fair: copy taskgroup shares to each cfs_rq
sched/fair: pulse-weight modulation controller for cpu cgroup
kernel/sched/core.c | 96 +++++++++++++++++++++++++++++++++++++++++++-----
kernel/sched/fair.c | 101 ++++++++++++++++++++++++++++++++++++++------------
kernel/sched/sched.h | 5 ++
3 files changed, 168 insertions(+), 34 deletions(-)
next reply other threads:[~2016-05-16 9:36 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-05-16 9:36 Konstantin Khlebnikov [this message]
2016-05-16 9:36 ` [PATCH RFC 1/3] sched/fair: call __refill_cfs_bandwidth_runtime only for finite quota Konstantin Khlebnikov
2016-05-16 9:36 ` [PATCH RFC 2/3] sched/fair: copy taskgroup shares to each cfs_rq Konstantin Khlebnikov
2016-05-16 9:36 ` [PATCH RFC 3/3] sched/fair: pulse-weight modulation controller for cpu cgroup Konstantin Khlebnikov
2016-05-16 11:18 ` [PATCH RFC 0/3] sched/fair: cpu time reserves for cgroups Peter Zijlstra
2016-05-16 12:22 ` Konstantin Khlebnikov
2016-05-16 12:26 ` Peter Zijlstra
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=146339085068.25295.7687045977863852568.stgit@buzz \
--to=khlebnikov@yandex-team.ru \
--cc=cgroups@vger.kernel.org \
--cc=containers@lists.linux-foundation.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@redhat.com \
--cc=peterz@infradead.org \
--cc=tj@kernel.org \
/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