diff options
author | Tejun Heo <tj@kernel.org> | 2019-11-07 11:18:00 -0800 |
---|---|---|
committer | Jens Axboe <axboe@kernel.dk> | 2019-11-07 12:28:13 -0700 |
commit | fd41e60331b13b8fb35cc5048185a46de98db77c (patch) | |
tree | 3931df1952e9799ac7f8858932816c618304ffad /block/bfq-iosched.h | |
parent | a557f1c7fee2f2059234647fea32ed1f3c07dce2 (diff) | |
download | linux-fd41e60331b13b8fb35cc5048185a46de98db77c.tar.gz linux-fd41e60331b13b8fb35cc5048185a46de98db77c.tar.bz2 linux-fd41e60331b13b8fb35cc5048185a46de98db77c.zip |
bfq-iosched: stop using blkg->stat_bytes and ->stat_ios
When used on cgroup1, bfq uses the blkg->stat_bytes and ->stat_ios
from blk-cgroup core to populate six stat knobs. blk-cgroup core is
moving away from blkg_rwstat to improve scalability and won't be able
to support this usage.
It isn't like the sharing gains all that much. Let's break it out to
dedicated rwstat counters which are updated when on cgroup1. This
makes use of bfqg_*rwstat*() helpers outside of
CONFIG_BFQ_CGROUP_DEBUG. Move them out.
v2: Compile fix when !CONFIG_BFQ_CGROUP_DEBUG.
Signed-off-by: Tejun Heo <tj@kernel.org>
Cc: Paolo Valente <paolo.valente@linaro.org>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Diffstat (limited to 'block/bfq-iosched.h')
-rw-r--r-- | block/bfq-iosched.h | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/block/bfq-iosched.h b/block/bfq-iosched.h index 5d1a519640f6..2676c06218f1 100644 --- a/block/bfq-iosched.h +++ b/block/bfq-iosched.h @@ -809,6 +809,9 @@ struct bfq_stat { }; struct bfqg_stats { + /* basic stats */ + struct blkg_rwstat bytes; + struct blkg_rwstat ios; #ifdef CONFIG_BFQ_CGROUP_DEBUG /* number of ios merged */ struct blkg_rwstat merged; @@ -956,6 +959,7 @@ void bfq_put_async_queues(struct bfq_data *bfqd, struct bfq_group *bfqg); /* ---------------- cgroups-support interface ---------------- */ +void bfqg_stats_update_legacy_io(struct request_queue *q, struct request *rq); void bfqg_stats_update_io_add(struct bfq_group *bfqg, struct bfq_queue *bfqq, unsigned int op); void bfqg_stats_update_io_remove(struct bfq_group *bfqg, unsigned int op); |