Merge branch 'for-3.11/core' of git://git.kernel.dk/linux-block
authorLinus Torvalds <torvalds@linux-foundation.org>
Thu, 11 Jul 2013 20:03:24 +0000 (13:03 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Thu, 11 Jul 2013 20:03:24 +0000 (13:03 -0700)
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
  ...

1  2 
fs/block_dev.c
include/linux/cgroup.h

diff --cc fs/block_dev.c
Simple merge
@@@ -261,23 -269,15 +261,25 @@@ enum 
         *
         * - Remount is disallowed.
         *
 +       * - rename(2) is disallowed.
 +       *
 +       * - "tasks" is removed.  Everything should be at process
 +       *   granularity.  Use "cgroup.procs" instead.
 +       *
 +       * - "release_agent" and "notify_on_release" are removed.
 +       *   Replacement notification mechanism will be implemented.
 +       *
 +       * - cpuset: tasks will be kept in empty cpusets when hotplug happens
 +       *   and take masks of ancestors with non-empty cpus/mems, instead of
 +       *   being moved to an ancestor.
 +       *
 +       * - cpuset: a task can be moved into an empty cpuset, and again it
 +       *   takes masks of ancestors.
 +       *
         * - memcg: use_hierarchy is on by default and the cgroup file for
         *   the flag is not created.
 -       *
 -       * The followings are planned changes.
 -       *
 -       * - release_agent will be disallowed once replacement notification
 -       *   mechanism is implemented.
+        *
+        * - blkcg: blk-throttle becomes properly hierarchical.
         */
        CGRP_ROOT_SANE_BEHAVIOR = (1 << 0),