diff options
| author | Linus Torvalds <torvalds@linux-foundation.org> | 2013-07-11 13:03:24 -0700 | 
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2013-07-11 13:03:24 -0700 | 
| commit | 36805aaea5ae3cf1bb32f1643e0a800bb69f0d5b (patch) | |
| tree | 5565132549a0733772b3a2ac6b5cda516ea8cdce /Documentation/cgroups | |
| parent | 6d2fa9e141ea56a571ec842fd4f3a86bea44a203 (diff) | |
| parent | d50235b7bc3ee0a0427984d763ea7534149531b4 (diff) | |
| download | linux-36805aaea5ae3cf1bb32f1643e0a800bb69f0d5b.tar.bz2 | |
Merge branch 'for-3.11/core' of git://git.kernel.dk/linux-block
Pull core block IO updates from Jens Axboe:
 "Here are the core IO block bits for 3.11. It contains:
   - A tweak to the reserved tag logic from Jan, for weirdo devices with
     just 3 free tags.  But for those it improves things substantially
     for random writes.
   - Periodic writeback fix from Jan.  Marked for stable as well.
   - Fix for a race condition in IO scheduler switching from Jianpeng.
   - The hierarchical blk-cgroup support from Tejun.  This is the grunt
     of the series.
   - blk-throttle fix from Vivek.
  Just a note that I'm in the middle of a relocation, whole family is
  flying out tomorrow.  Hence I will be awal the remainder of this week,
  but back at work again on Monday the 15th.  CC'ing Tejun, since any
  potential "surprises" will most likely be from the blk-cgroup work.
  But it's been brewing for a while and sitting in my tree and
  linux-next for a long time, so should be solid."
* 'for-3.11/core' of git://git.kernel.dk/linux-block: (36 commits)
  elevator: Fix a race in elevator switching
  block: Reserve only one queue tag for sync IO if only 3 tags are available
  writeback: Fix periodic writeback after fs mount
  blk-throttle: implement proper hierarchy support
  blk-throttle: implement throtl_grp->has_rules[]
  blk-throttle: Account for child group's start time in parent while bio climbs up
  blk-throttle: add throtl_qnode for dispatch fairness
  blk-throttle: make throtl_pending_timer_fn() ready for hierarchy
  blk-throttle: make tg_dispatch_one_bio() ready for hierarchy
  blk-throttle: make blk_throtl_bio() ready for hierarchy
  blk-throttle: make blk_throtl_drain() ready for hierarchy
  blk-throttle: dispatch from throtl_pending_timer_fn()
  blk-throttle: implement dispatch looping
  blk-throttle: separate out throtl_service_queue->pending_timer from throtl_data->dispatch_work
  blk-throttle: set REQ_THROTTLED from throtl_charge_bio() and gate stats update with it
  blk-throttle: implement sq_to_tg(), sq_to_td() and throtl_log()
  blk-throttle: add throtl_service_queue->parent_sq
  blk-throttle: generalize update_disptime optimization in blk_throtl_bio()
  blk-throttle: dispatch to throtl_data->service_queue.bio_lists[]
  blk-throttle: move bio_lists[] and friends to throtl_service_queue
  ...
Diffstat (limited to 'Documentation/cgroups')
| -rw-r--r-- | Documentation/cgroups/blkio-controller.txt | 29 | 
1 files changed, 15 insertions, 14 deletions
| diff --git a/Documentation/cgroups/blkio-controller.txt b/Documentation/cgroups/blkio-controller.txt index da272c8f44e7..cd556b914786 100644 --- a/Documentation/cgroups/blkio-controller.txt +++ b/Documentation/cgroups/blkio-controller.txt @@ -94,11 +94,13 @@ Throttling/Upper Limit policy  Hierarchical Cgroups  ==================== -- Currently only CFQ supports hierarchical groups. For throttling, -  cgroup interface does allow creation of hierarchical cgroups and -  internally it treats them as flat hierarchy. -  If somebody created a hierarchy like as follows. +Both CFQ and throttling implement hierarchy support; however, +throttling's hierarchy support is enabled iff "sane_behavior" is +enabled from cgroup side, which currently is a development option and +not publicly available. + +If somebody created a hierarchy like as follows.  			root  			/  \ @@ -106,21 +108,20 @@ Hierarchical Cgroups  			|  		     test3 -  CFQ will handle the hierarchy correctly but and throttling will -  practically treat all groups at same level. For details on CFQ -  hierarchy support, refer to Documentation/block/cfq-iosched.txt. -  Throttling will treat the hierarchy as if it looks like the -  following. +CFQ by default and throttling with "sane_behavior" will handle the +hierarchy correctly.  For details on CFQ hierarchy support, refer to +Documentation/block/cfq-iosched.txt.  For throttling, all limits apply +to the whole subtree while all statistics are local to the IOs +directly generated by tasks in that cgroup. + +Throttling without "sane_behavior" enabled from cgroup side will +practically treat all groups at same level as if it looks like the +following.  				pivot  			     /  /   \  \  			root  test1 test2  test3 -  Nesting cgroups, while allowed, isn't officially supported and blkio -  genereates warning when cgroups nest. Once throttling implements -  hierarchy support, hierarchy will be supported and the warning will -  be removed. -  Various user visible config options  ===================================  CONFIG_BLK_CGROUP |