[GIT PULL] Block IO core bits for 3.11

From: Jens Axboe
Date: Mon Jul 08 2013 - 15:48:49 EST


Hi Linus,

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.

Please pull!

git://git.kernel.dk/linux-block.git for-3.11/core

Jan Kara (2):
writeback: Fix periodic writeback after fs mount
block: Reserve only one queue tag for sync IO if only 3 tags are available

Jianpeng Ma (1):
elevator: Fix a race in elevator switching

Tejun Heo (32):
blkcg: fix error return path in blkg_create()
blkcg: move blkg_for_each_descendant_pre() to block/blk-cgroup.h
blkcg: implement blkg_for_each_descendant_post()
blkcg: invoke blkcg_policy->pd_init() after parent is linked
blkcg: move bulk of blkcg_gq release operations to the RCU callback
blk-throttle: remove spurious throtl_enqueue_tg() call from throtl_select_dispatch()
blk-throttle: remove deferred config application mechanism
blk-throttle: collapse throtl_dispatch() into the work function
blk-throttle: relocate throtl_schedule_delayed_work()
blk-throttle: remove pointless throtl_nr_queued() optimizations
blk-throttle: rename throtl_rb_root to throtl_service_queue
blk-throttle: simplify throtl_grp flag handling
blk-throttle: add backlink pointer from throtl_grp to throtl_data
blk-throttle: pass around throtl_service_queue instead of throtl_data
blk-throttle: reorganize throtl_service_queue passed around as argument
blk-throttle: add throtl_grp->service_queue
blk-throttle: move bio_lists[] and friends to throtl_service_queue
blk-throttle: dispatch to throtl_data->service_queue.bio_lists[]
blk-throttle: generalize update_disptime optimization in blk_throtl_bio()
blk-throttle: add throtl_service_queue->parent_sq
blk-throttle: implement sq_to_tg(), sq_to_td() and throtl_log()
blk-throttle: set REQ_THROTTLED from throtl_charge_bio() and gate stats update with it
blk-throttle: separate out throtl_service_queue->pending_timer from throtl_data->dispatch_work
blk-throttle: implement dispatch looping
blk-throttle: dispatch from throtl_pending_timer_fn()
blk-throttle: make blk_throtl_drain() ready for hierarchy
blk-throttle: make blk_throtl_bio() ready for hierarchy
blk-throttle: make tg_dispatch_one_bio() ready for hierarchy
blk-throttle: make throtl_pending_timer_fn() ready for hierarchy
blk-throttle: add throtl_qnode for dispatch fairness
blk-throttle: implement throtl_grp->has_rules[]
blk-throttle: implement proper hierarchy support

Vivek Goyal (1):
blk-throttle: Account for child group's start time in parent while bio climbs up

Documentation/cgroups/blkio-controller.txt | 29 +-
block/blk-cgroup.c | 105 ++-
block/blk-cgroup.h | 38 +-
block/blk-tag.c | 11 +-
block/blk-throttle.c | 1064 +++++++++++++++++++---------
block/cfq-iosched.c | 17 +-
block/deadline-iosched.c | 16 +-
block/elevator.c | 25 +-
block/noop-iosched.c | 17 +-
fs/block_dev.c | 9 +-
include/linux/cgroup.h | 2 +
include/linux/elevator.h | 6 +-
12 files changed, 905 insertions(+), 434 deletions(-)


--
Jens Axboe

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/