Skip to content

CFS Bandwidth Control v7

Paul Turner lkml 1 version In review

Get series with b4
b4 am [email protected]

Versions newest first

  1. v1 Latest16 patches 42 repliesIn review

Patches in v1 No applies recorded yet

#Subject and filesSizeRepliesApplied
1/16sched: (fixlet) dont update shares twice on on_rq parentkernel/sched_fair.c+3 -00 replies
2/16sched: hierarchical task accounting for SCHED_OTHERkernel/sched.c kernel/sched_fair.c kernel/sched_rt.c +1 more+16 -70 replies
3/16sched: introduce primitives to account for CFS bandwidth trackinginit/Kconfig kernel/sched.c kernel/sched_fair.c+219 -43 replies
4/16sched: validate CFS quota hierarchieskernel/sched.c+96 -133 replies
5/16sched: accumulate per-cfs_rq cpu usage and charge against bandwidthinclude/linux/sched.h kernel/sched.c kernel/sched_fair.c +1 more+86 -30 replies
6/16sched: add a timer to handle CFS bandwidth refreshkernel/sched.c kernel/sched_fair.c+101 -221 reply
7/16sched: expire invalid runtimekernel/sched.c kernel/sched_fair.c+82 -114 replies
8/16sched: throttle cfs_rq entities which exceed their local runtimekernel/sched.c kernel/sched_fair.c+92 -43 replies
9/16sched: unthrottle cfs_rq(s) who ran out of quota at period refreshkernel/sched.c kernel/sched_fair.c+121 -74 replies
10/16sched: throttle entities exceeding their allowed bandwidthkernel/sched_fair.c+53 -21 reply
11/16sched: allow for positional tg_tree walkskernel/sched.c+39 -130 replies
12/16sched: prevent interactions with throttled entitieskernel/sched.c kernel/sched_fair.c+81 -84 replies
13/16sched: migrate throttled tasks on HOTPLUGkernel/sched.c+27 -00 replies
14/16sched: add exports tracking cfs bandwidth control statisticskernel/sched.c kernel/sched_fair.c+29 -00 replies
15/16sched: return unused runtime on voluntary sleepkernel/sched.c kernel/sched_fair.c+113 -16 replies
16/16sched: add documentation for bandwidth controlDocumentation/scheduler/sched-bwc.txt+110 -02 replies

Reviews trailers per patch

14 of 16 patches have a Reviewed-by or Acked-by.

PatchHidetoshi Seto
1/16
2/16R-b
3/16R-b
4/16R-b
5/16R-b
6/16R-b R-b
7/16R-b R-b
8/16R-b
9/16R-b
10/16R-b
11/16R-b
12/16R-b
13/16R-b
14/16R-b
15/16R-b
16/16

Trailers given in replies are filled; those carried in the patches from earlier versions are outlined with dashes.

Read the v1 thread

Cover letter [patch 00/16] CFS Bandwidth Control v7

Hi all,

Please find attached the latest iteration of bandwidth control (v7).

This release continues the scouring started in v5 and v6, this time with attention paid to timers, quota expiration, and the reclaim path.

Thanks to Hidetoshi Seto for taking the time to review the previous series.

v7
------------
optimizations/tweaks:
- no need to reschedule on an enqueue_throttle
- bandwidth is reclaimed at time of dequeue rather than put_prev_entity, this prevents us losing small slices of bandwidth to load-balance movement.

quota/period handling:
- runtime expiration now handles sched_clock wrap
- bandwidth now reclaimed at time of dequeue rather than put_prev_entity, this was resulting in load-balance stranding small amounts of bandwidht perviously.
- logic for handling the bandwidth timer is now better unified with idle state accounting, races with period expiration during hrtimer tear-down resolved
- fixed wake-up into a new quota period waiting for timer to replenish bandwidth.

misc:
- fixed stats not being accumulated for unthrottled periods [thanks H. Sato]
- fixed nr_running corruption in enqueue/dequeue_task fair [thanks H. Sato]
- consistent specification changed to max(child bandwidth) <= parent bandwidth, sysctl controlling this behavior was nuked
- throttling not enabled until both throttle and unthrottle mechanisms are in place.
- bunch of minor cleanups per list discussion

Hideotoshi, the following patches changed enough, or are new, and should be looked over again before I can re-add your Reviewed-by.

[patch 04/16] sched: validate CFS quota hierarchies
[patch 06/16] sched: add a timer to handle CFS bandwidth refresh [patch 07/16] sched: expire invalid runtime
[patch 10/16] sched: throttle entities exceeding their allowed bandwidth [patch 15/16] sched: return unused runtime on voluntary sleep

Previous postings:
-----------------
v6: http://lkml.org/lkml/2011/5/7/37
v5: http://lkml.org/lkml/2011/3 /22/477
v4: http://lkml.org/lkml/2011/2/23/44
v3: http://lkml.org/lkml/2010/10/12/44:
v2: http://lkml.org/lkml/2010/4/28/88
Original posting: http://lkml.org/lkml/2010/2/12/393
Prior approaches: http://lkml.org/lkml/2010/1/5/44 ["CFS Hard limits v5"]

Let me know if anything's busted :)

- Paul