Re: [PATCH RFC 0/3] sched/fair: cpu time reserves for cgroups

From: Konstantin Khlebnikov
Date: Mon May 16 2016 - 08:23:12 EST


On 16.05.2016 14:18, Peter Zijlstra wrote:
On Mon, May 16, 2016 at 12:36:19PM +0300, Konstantin Khlebnikov wrote:
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.


You forgot to explain why I should care about this.

As I told this works as low-limit or high-limit which allow to
control cpu time distribution without hard limits and throttling.

Present quota/hard limit has well known problems when it throttle task
inside kernel where it holds mutexes. Also it's too strict and doesn't
allow utilization of unused cpu time.

--
Konstantin