[PATCHSET v2 block/for-4.3] blkcg: blkcg stats cleanup

Tejun Heo
2015-07-12T18:00:49Z

Hello,

This is v2 of blkcg stats cleanup patchset. Changes from the last
take[L] are

* The following patches added to consolidate blkcg entry point and
blkg creation. This is in itself is an improvement and helps
colllecting common stats on bio issue.

0002-blkcg-inline-__-blkg_lookup.patch
0003-blkcg-move-root-blkg-lookup-optimization-from-throtl.patch
0004-blk-throttle-improve-queue-bypass-handling.patch
0005-blkcg-consolidate-blkg-creation-in-blkcg_bio_issue_c.patch

* per-blkg stats now accounted on bio issue rather than request
completion so that bio based and request based drivers can behave
the same way. The issue was spotted by Vivek.

blkcg's stats have always been somwhat of a mess. This patchset tries
to improve the situation a bit.

* cfq-iosched implements custom recursive stats and blk-throttle
implements custom per-cpu stats. This patchset make blkcg core
support both by default.

* cfq-iosched and blk-throttle keep track of the same stats multiple
times. Unify them.

This patchset contains the following ten patches.

0001-cgroup-make-cftype-private-a-unsigned-long.patch
0002-blkcg-inline-__-blkg_lookup.patch
0003-blkcg-move-root-blkg-lookup-optimization-from-throtl.patch
0004-blk-throttle-improve-queue-bypass-handling.patch
0005-blkcg-consolidate-blkg-creation-in-blkcg_bio_issue_c.patch
0006-blkcg-add-blkg_-rw-stat-aux_cnt-and-replace-cfq_grou.patch
0007-blkcg-make-blkcg_-rw-stat-per-cpu.patch
0008-blkcg-make-blkg_-rw-stat_recursive_sum-to-be-able-to.patch
0009-blkcg-move-io_service_bytes-and-io_serviced-stats-in.patch
0010-blkcg-remove-cfqg_stats-sectors.patch

0001-0005 are prep patches. 0006-0008 make blkg stats per-cpu.
0009-0010 consolidate common stats across policies.

This patchset is also available in the following git branch.

git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup.git review-blkcg-stats-cleanup

and is on top of

block/for-linus 06b285bd1125 ("blkcg: fix blkcg_policy_data allocation bug")
+ [1] [PATCHSET block/for-4.3] writeback: cgroup writeback updates
+ [2] [PATCHSET v2 block/for-4.3] block, cgroup: make cfq charge async IOs to the appropriate blkcgs
+ [3] [PATCHSET v3 block/for-4.3] blkcg: blkcg policy methods and data handling cleanup

diffstat follows. Thanks.

block/blk-cgroup.c | 215 +++++++++++++++++++++++++-----------
block/blk-core.c | 4
block/blk-throttle.c | 188 ++-----------------------------
block/blk.h | 5
block/cfq-iosched.c | 241 ++++++++++++++++++----------------------
include/linux/blk-cgroup.h | 261 ++++++++++++++++++++++++++++++++------------
include/linux/cgroup-defs.h | 2
7 files changed, 471 insertions(+), 445 deletions(-)

--
tejun

[L] http://lkml.kernel.org/g/1435268337-1738-1-git-send-email-tj@kernel.org
[1] http://lkml.kernel.org/g/1436281823-1947-1-git-send-email-tj@kernel.org
[2] http://lkml.kernel.org/g/1436283361-3889-1-git-send-email-tj@kernel.org
[3] http://lkml.kernel.org/g/1436637654-28110-1-git-send-email-tj@kernel.org