CFS Bandwidth Control v7
Get series with b4
b4 am [email protected]Versions newest first
- v1 Latest16 patches 42 repliesIn review
Patches in v1 No applies recorded yet
| # | Subject and files | Size | Replies | Applied |
|---|---|---|---|---|
| 1/16 | sched: (fixlet) dont update shares twice on on_rq parentkernel/ | +3 | 0 replies | |
| 2/16 | sched: hierarchical task accounting for SCHED_OTHERkernel/ kernel/ kernel/ +1 more | +16 | 0 replies | |
| 3/16 | sched: introduce primitives to account for CFS bandwidth trackinginit/ kernel/ kernel/ | +219 | 3 replies | |
| 4/16 | sched: validate CFS quota hierarchieskernel/ | +96 | 3 replies | |
| 5/16 | sched: accumulate per-cfs_rq cpu usage and charge against bandwidthinclude/ kernel/ kernel/ +1 more | +86 | 0 replies | |
| 6/16 | sched: add a timer to handle CFS bandwidth refreshkernel/ kernel/ | +101 | 1 reply | |
| 7/16 | sched: expire invalid runtimekernel/ kernel/ | +82 | 4 replies | |
| 8/16 | sched: throttle cfs_rq entities which exceed their local runtimekernel/ kernel/ | +92 | 3 replies | |
| 9/16 | sched: unthrottle cfs_rq(s) who ran out of quota at period refreshkernel/ kernel/ | +121 | 4 replies | |
| 10/16 | sched: throttle entities exceeding their allowed bandwidthkernel/ | +53 | 1 reply | |
| 11/16 | sched: allow for positional tg_tree walkskernel/ | +39 | 0 replies | |
| 12/16 | sched: prevent interactions with throttled entitieskernel/ kernel/ | +81 | 4 replies | |
| 13/16 | sched: migrate throttled tasks on HOTPLUGkernel/ | +27 | 0 replies | |
| 14/16 | sched: add exports tracking cfs bandwidth control statisticskernel/ kernel/ | +29 | 0 replies | |
| 15/16 | sched: return unused runtime on voluntary sleepkernel/ kernel/ | +113 | 6 replies | |
| 16/16 | sched: add documentation for bandwidth controlDocumentation/ | +110 | 2 replies |
Reviews trailers per patch
14 of 16 patches have a Reviewed-by or Acked-by.
| Patch | Hidetoshi Seto |
|---|---|
| 1/16 | |
| 2/16 | R-b |
| 3/16 | R-b |
| 4/16 | R-b |
| 5/16 | R-b |
| 6/16 | R-b R-b |
| 7/16 | R-b R-b |
| 8/16 | R-b |
| 9/16 | R-b |
| 10/16 | R-b |
| 11/16 | R-b |
| 12/16 | R-b |
| 13/16 | R-b |
| 14/16 | R-b |
| 15/16 | R-b |
| 16/16 |
Trailers given in replies are filled; those carried in the patches from earlier versions are outlined with dashes.
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