[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <146339085068.25295.7687045977863852568.stgit@buzz>
Date: Mon, 16 May 2016 12:36:19 +0300
From: Konstantin Khlebnikov <khlebnikov@...dex-team.ru>
To: Peter Zijlstra <peterz@...radead.org>,
Ingo Molnar <mingo@...hat.com>, linux-kernel@...r.kernel.org
Cc: Tejun Heo <tj@...nel.org>, cgroups@...r.kernel.org,
containers@...ts.linux-foundation.org
Subject: [PATCH RFC 0/3] sched/fair: cpu time reserves for cgroups
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(-)
Powered by blists - more mailing lists