All of lore.kernel.org
 help / color / mirror / Atom feed
* [RFC V3 0/6] blk: make blk-rq-qos policies pluggable and modular
@ 2022-02-16 11:48 Wang Jianchao (Kuaishou)
  2022-02-16 11:48 ` [RFC V3 1/6] blk: prepare to make blk-rq-qos " Wang Jianchao (Kuaishou)
                   ` (5 more replies)
  0 siblings, 6 replies; 9+ messages in thread
From: Wang Jianchao (Kuaishou) @ 2022-02-16 11:48 UTC (permalink / raw)
  To: Jens Axboe
  Cc: Josef Bacik, Tejun Heo, Bart Van Assche, linux-block,
	linux-kernel

Hi Jens

blk-rq-qos is a standalone framework out of io-sched and can be used to
control or observe the IO progress in block-layer with hooks. blk-rq-qos
is a great design but right now, it is totally fixed and built-in and shut
out peoples who want to use it with external module.

This patchset attempts to make blk-rq-qos framework pluggable and modular.
Then we can update the blk-rq-qos policy module w/o stopping the IO workload.
And it is more convenient to introduce new policy on old machines w/o udgrade
kernel. And we can close all of the blk-rq-qos policy if we needn't any of
them. At the moment, the request_queue.rqos list is empty, we needn't to
waste cpu cyles on them.

Changes since v2:
 Refactor the patches,
 - patch01 only provide new interfaces and not export the sysfs interface.
 - patch02 adapt the wbt to new interface, reserve the previous action
   when write to wbt_lat
 - export sysfs interface in last patch when all of the blk-rqos policies
   are preprared well.

Changes since v1:
 - Just make iocost and iolatency pluggable, then we needn't to export
   those interfaces
 - Remove the iostat rqos policy
 - Rename module of blk-ioprio to io-prio to avoid rename ioprio.c file

WangJianchao(6):
	blk: prepare to make blk-rq-qos pluggable and modular
    blk-wbt: make wbt pluggable
    blk-iolatency: make iolatency pluggable
    blk-iocost: make iocost pluggable
    blk-ioprio: make ioprio pluggable and modular
    blk: export the sysfs for switching qos

 block/Kconfig          |   2 +-
 block/Makefile         |   3 +-
 block/blk-cgroup.c     |  11 ---
 block/blk-iocost.c     |  49 +++++++-----
 block/blk-iolatency.c  |  33 +++++++--
 block/blk-ioprio.c     |  50 ++++++++-----
 block/blk-ioprio.h     |  19 -----
 block/blk-mq-debugfs.c |  23 ++----
 block/blk-rq-qos.c     | 303 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-
 block/blk-rq-qos.h     |  96 +++++++++---------------
 block/blk-sysfs.c      |   2 +
 block/blk-wbt.c        |  52 +++++++++++--
 block/blk-wbt.h        |   7 +-
 block/blk.h            |   6 --
 include/linux/blkdev.h |   4 +
 15 files changed, 488 insertions(+), 172 deletions(-)


^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2022-02-16 16:10 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2022-02-16 11:48 [RFC V3 0/6] blk: make blk-rq-qos policies pluggable and modular Wang Jianchao (Kuaishou)
2022-02-16 11:48 ` [RFC V3 1/6] blk: prepare to make blk-rq-qos " Wang Jianchao (Kuaishou)
2022-02-16 13:06   ` kernel test robot
2022-02-16 11:48 ` [RFC V3 2/6] blk-wbt: make wbt pluggable Wang Jianchao (Kuaishou)
2022-02-16 11:48 ` [RFC V3 3/6] blk-iolatency: make iolatency pluggable Wang Jianchao (Kuaishou)
2022-02-16 11:48 ` [RFC V3 4/6] blk-iocost: make iocost pluggable Wang Jianchao (Kuaishou)
2022-02-16 16:10   ` kernel test robot
2022-02-16 11:48 ` [RFC V3 5/6] blk-ioprio: make ioprio pluggable and modular Wang Jianchao (Kuaishou)
2022-02-16 11:48 ` [RFC V3 6/6] blk: export the sysfs for switching qos Wang Jianchao (Kuaishou)

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.