Hello, cfq has always charged all async IOs to the root cgroup. It didn't have much choice as writeback didn't know about cgroups and there was no way to tell who to blame for a given writeback IO. writeback finally grew support for cgroups and now tags each writeback IO with the appropriate cgroup to charge it against. This patchset updates cfq so that it follows the blkcg each bio is tagged with. Async cfq_queues are now shared across cfq_group, which is per-cgroup, instead of per-request_queue cfq_data. This makes all IOs follow the weight based IO resource distribution implemented by cfq. This patchset contains the following 8 patches. 0001-cfq-iosched-simplify-control-flow-in-cfq_get_queue.patch 0002-cfq-iosched-fix-async-oom-queue-handling.patch 0003-cfq-iosched-fix-oom-cfq_queue-ref-leak-in-cfq_set_re.patch 0004-cfq-iosched-minor-cleanups.patch 0005-cfq-iosched-remove-gfp_mask-from-cfq_find_alloc_queu.patch 0006-cfq-iosched-move-cfq_group-determination-from-cfq_fi.patch 0007-cfq-iosched-fold-cfq_find_alloc_queue-into-cfq_get_q.patch 0008-cfq-iosched-charge-async-IOs-to-the-appropriate-blkc.patch 0001-0003 are a prep and two fix patches on top. The bugs fixed by these patches are very unlikely to cause problems in actual usage, so the patches aren't tagged w/ -stable. 0004-0007 are prep patches. 0008 makes cfq cgroup-writeback ready. This patchset is on top of block/for-4.2/writeback 5857cd637bc0 ("bdi: fix wrong error return value in cgwb_create()"). Thanks, diffstat follows. block/cfq-iosched.c | 220 ++++++++++++++++++++-------------------------------- 1 file changed, 85 insertions(+), 135 deletions(-) -- tejun -- To unsubscribe from this list: send the line "unsubscribe cgroups" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html