* [GIT PULL] blk-throttle: implement proper hierarchy support
@ 2013-05-14 21:09 Tejun Heo
2013-05-15 8:05 ` Jens Axboe
0 siblings, 1 reply; 2+ messages in thread
From: Tejun Heo @ 2013-05-14 21:09 UTC (permalink / raw)
To: Jens Axboe; +Cc: linux-kernel, Vivek Goyal, Li Zefan, containers, cgroups
Hello, Jens.
This is the pull request for patches which implement proper hierarchy
support in blk-throttle and remove .broken_hierarchy tagging from
blkcg.
http://thread.gmane.org/gmane.linux.kernel.cgroups/7119
The implementation is fairly straight-forward in that it just repeats
the same scheduling at each layer until it reaches the top and thus
isn't very scalable. It also still has an issue where a nested cgroup
could get lower than configured limits as it travels towards root but
the severity is at an acceptable level after Vivke's start time
adjustment patch. The issue ultimately is a problem in the scheduling
algorithm itself and can also show up in flat hierarchy given the
right (well, wrong) IO pattern. If it still is an actual problem,
which I don't think is, we should be able to work on it later on in
fairly isolated manner.
While the implementation isn't perfect, it should be good enough in
most cases with a few levels of nesting and this allows the rest of
cgroup to proceed towards unified hierarchy handling.
The series is based on top of v3.10-rc1 and available in the following
git branch
git://git.kernel.org/pub/scm/linux/kernel/git/tj/misc.git blk-throttle-hierarchy
for you to fetch changes up to 9138125beabbb76b4a373d4a619870f6f5d86fc5:
blk-throttle: implement proper hierarchy support (2013-05-14 13:52:38 -0700)
Thanks.
----------------------------------------------------------------
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-throttle.c | 1064 +++++++++++++++++++---------
include/linux/cgroup.h | 2 +
5 files changed, 837 insertions(+), 401 deletions(-)
--
tejun
^ permalink raw reply [flat|nested] 2+ messages in thread* Re: [GIT PULL] blk-throttle: implement proper hierarchy support
2013-05-14 21:09 [GIT PULL] blk-throttle: implement proper hierarchy support Tejun Heo
@ 2013-05-15 8:05 ` Jens Axboe
0 siblings, 0 replies; 2+ messages in thread
From: Jens Axboe @ 2013-05-15 8:05 UTC (permalink / raw)
To: Tejun Heo; +Cc: linux-kernel, Vivek Goyal, Li Zefan, containers, cgroups
On Tue, May 14 2013, Tejun Heo wrote:
> Hello, Jens.
>
> This is the pull request for patches which implement proper hierarchy
> support in blk-throttle and remove .broken_hierarchy tagging from
> blkcg.
>
> http://thread.gmane.org/gmane.linux.kernel.cgroups/7119
>
> The implementation is fairly straight-forward in that it just repeats
> the same scheduling at each layer until it reaches the top and thus
> isn't very scalable. It also still has an issue where a nested cgroup
> could get lower than configured limits as it travels towards root but
> the severity is at an acceptable level after Vivke's start time
> adjustment patch. The issue ultimately is a problem in the scheduling
> algorithm itself and can also show up in flat hierarchy given the
> right (well, wrong) IO pattern. If it still is an actual problem,
> which I don't think is, we should be able to work on it later on in
> fairly isolated manner.
>
> While the implementation isn't perfect, it should be good enough in
> most cases with a few levels of nesting and this allows the rest of
> cgroup to proceed towards unified hierarchy handling.
>
> The series is based on top of v3.10-rc1 and available in the following
> git branch
>
> git://git.kernel.org/pub/scm/linux/kernel/git/tj/misc.git blk-throttle-hierarchy
>
> for you to fetch changes up to 9138125beabbb76b4a373d4a619870f6f5d86fc5:
>
> blk-throttle: implement proper hierarchy support (2013-05-14 13:52:38 -0700)
Thanks Tejun, I'll pull this in for 3.11.
--
Jens Axboe
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2013-05-15 8:06 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-05-14 21:09 [GIT PULL] blk-throttle: implement proper hierarchy support Tejun Heo
2013-05-15 8:05 ` Jens Axboe
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox