lkml.org 
[lkml]   [2016]   [May]   [16]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Subject[PATCH RFC 0/3] sched/fair: cpu time reserves for cgroups
    From
    Date
    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(-)

    \
     
     \ /
      Last update: 2016-05-16 11:41    [W:5.882 / U:0.004 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site