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(-) _______________________________________________ Containers mailing list Containers@xxxxxxxxxxxxxxxxxxxxxxxxxx https://lists.linuxfoundation.org/mailman/listinfo/containers