[PATCH v3 0/3] Implement BFQ per-device weight interface

From: Fam Zheng
Date: Tue Aug 27 2019 - 23:55:02 EST


v3: Pick up rev-by and ack-by from Paolo and Tejun.
Add commit message to patch 3.

(Revision starting from v2 since v1 was used off-list)

Hi Paolo and others,

This adds to BFQ the missing per-device weight interfaces:
blkio.bfq.weight_device on legacy and io.bfq.weight on unified. The
implementation pretty closely resembles what we had in CFQ and the parsing code
is basically reused.

Tests
=====

Using two cgroups and three block devices, having weights setup as:

Cgroup test1 test2
============================================
default 100 500
sda 500 100
sdb default default
sdc 200 200

cgroup v1 runs
--------------

sda.test1.out: READ: bw=913MiB/s
sda.test2.out: READ: bw=183MiB/s

sdb.test1.out: READ: bw=213MiB/s
sdb.test2.out: READ: bw=1054MiB/s

sdc.test1.out: READ: bw=650MiB/s
sdc.test2.out: READ: bw=650MiB/s

cgroup v2 runs
--------------

sda.test1.out: READ: bw=915MiB/s
sda.test2.out: READ: bw=184MiB/s

sdb.test1.out: READ: bw=216MiB/s
sdb.test2.out: READ: bw=1069MiB/s

sdc.test1.out: READ: bw=621MiB/s
sdc.test2.out: READ: bw=622MiB/s

Fam Zheng (3):
bfq: Fix the missing barrier in __bfq_entity_update_weight_prio
bfq: Extract bfq_group_set_weight from bfq_io_set_weight_legacy
bfq: Add per-device weight

block/bfq-cgroup.c | 151 +++++++++++++++++++++++++++++++++-----------
block/bfq-iosched.h | 3 +
block/bfq-wf2q.c | 2 +
3 files changed, 119 insertions(+), 37 deletions(-)

--
2.22.1