[PATCHSET v4 block/for-next] blkcg: Improve blkg config helpers and make iolatency init lazy

From: Tejun Heo
Date: Wed Apr 12 2023 - 20:07:01 EST


Hello,

* v2[2] fixes the build failure caused by v1[1] forgetting to update bfq.

* v3[3] drops __acuquires/__releases() changes and updates patch descriptions.

* v4 rebases on top of the current block/for-next.

This patchset:

* Improves blkg config helpers so that they can be used consistently for all
the existing use cases. This also allows keeps using the same bdev open
instance across lazy init of rq_qos policies.

* Updates iolatency so that it initializes lazily when a latency target is
set for the first time. This avoids registering the rq_qos policy when
iolatency is not used which removes unnecessary calls into iolat from IO
hot paths.

and contains the following four patches:

0001-blkcg-Drop-unnecessary-RCU-read-un-locks-from-blkg_c.patch
0002-blkcg-Restructure-blkg_conf_prep-and-friends.patch
0003-blk-iolatency-s-blkcg_rq_qos-iolat_rq_qos.patch
0004-blk-iolatency-Make-initialization-lazy.patch

and is also available in the following git branch.

git://git.kernel.org/pub/scm/linux/kernel/git/tj/misc.git iolat-lazy-init-v4

diffstat follows. Thanks.

block/bfq-cgroup.c | 8 ++-
block/blk-cgroup.c | 122 ++++++++++++++++++++++++++++----------------------
block/blk-cgroup.h | 10 ++--
block/blk-iocost.c | 58 +++++++++++++----------
block/blk-iolatency.c | 39 +++++++++++++--
block/blk-rq-qos.h | 2
block/blk-throttle.c | 16 ++++--
block/blk.h | 6 --
8 files changed, 159 insertions(+), 102 deletions(-)

[1] https://lkml.kernel.org/r/20230105002007.157497-1-tj@xxxxxxxxxx
[2] https://lkml.kernel.org/r/20230105212432.289569-1-tj@xxxxxxxxxx
[3] https://lkml.kernel.org/r/20230110222714.552241-1-tj@xxxxxxxxxx