Skip to content

CFS Bandwidth Control V6

Paul Turner lkml 1 version In review

Get series with b4
b4 am [email protected]

Versions newest first

  1. v1 Latest15 patches 113 repliesIn review

v5 from the cover letter

Patches in v1 No applies recorded yet

#Subject and filesSizeRepliesApplied
1/15sched: (fixlet) dont update shares twice on on_rq parentkernel/sched_fair.c+3 -16 replies
2/15sched: hierarchical task accounting for SCHED_OTHERkernel/sched.c kernel/sched_fair.c kernel/sched_rt.c +1 more+18 -91 reply
3/15sched: introduce primitives to account for CFS bandwidth trackinginit/Kconfig kernel/sched.c kernel/sched_fair.c+217 -41 reply
4/15sched: validate CFS quota hierarchiesinclude/linux/sched.h kernel/sched.c kernel/sched_fair.c +1 more+151 -138 replies
5/15sched: add a timer to handle CFS bandwidth refreshkernel/sched.c kernel/sched_fair.c+77 -194 replies
6/15sched: accumulate per-cfs_rq cpu usage and charge against bandwidthinclude/linux/sched.h kernel/sched.c kernel/sched_fair.c +1 more+96 -37 replies
7/15sched: expire invalid runtimekernel/sched.c kernel/sched_fair.c+46 -43 replies
8/15sched: throttle cfs_rq entities which exceed their local runtimekernel/sched.c kernel/sched_fair.c+133 -53 replies
9/15sched: unthrottle cfs_rq(s) who ran out of quota at period refreshkernel/sched.c kernel/sched_fair.c+107 -12 replies
10/15sched: allow for positional tg_tree walkskernel/sched.c+23 -113 replies
11/15sched: prevent interactions between throttled entities and load-balancekernel/sched.c kernel/sched_fair.c+71 -72 replies
12/15sched: migrate throttled tasks on HOTPLUGkernel/sched.c+29 -02 replies
13/15sched: add exports tracking cfs bandwidth control statisticskernel/sched.c kernel/sched_fair.c+31 -03 replies
14/15sched: return unused runtime on voluntary sleepkernel/sched.c kernel/sched_fair.c+113 -41 reply
15/15sched: add documentation for bandwidth controlDocumentation/scheduler/sched-bwc.txt+104 -02 replies

Reviews trailers per patch

All 15 patches have a Reviewed-by or Acked-by.

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

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/15] CFS Bandwidth Control V6

[ Apologies if you're receiving this twice, the previous mailing did not seem to make it to the list for some reason ].

Hi all,

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

Where the previous release cleaned up many of the semantics surrounding the update_curr() path and throttling, this release is focused on cleaning up the patchset itself. Elements such as the notion of expiring bandwidth from previous quota periods as well as some of the core accounting changes have been pushed up (and re-written for clarity) within the patchset reducing the patch-to-patch churn significantly.

While this restructuring was fairly extensive in terms of the code touched, there are no major behavioral changes beyond bug fixes.

Thanks to Hidetoshi Seto for identifying the throttle list corruption.

Notable changes:
- Runtime is now actively expired taking advantage of the bounds placed on sched_clock syncrhonization.
- distribute_cfs_runtime() no longer races with throttles around the period boundary.
- Major code cleanup

Bug fixes:
- several interactions with active load-balance have been corrected. This was manifesting previously in throttle_list corruption and crashes.

Interface:
----------
Three new cgroupfs files are exported by the cpu subsystem:
cpu.cfs_period_us : period over which bandwidth is to be regulated cpu.cfs_quota_us : bandwidth available for consumption per period
cpu.stat : statistics (such as number of throttled periods and
total throttled time)
One important interface change that this introduces (versus the rate limits proposal) is that the defined bandwidth becomes an absolute quantifier.

Previous postings:
-----------------
v5:
https://lkml.org/lkml/2011/3/22/477
v4:
https://lkml.org/lkml/2011/2/23/44
v3:
https://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"]

Thanks,

- Paul