From: Yu Kuai <yukuai3@xxxxxxxxxx> Changes from RFC v1: - replace the first patch. - add commit message of our motivation and advantages to build iocost as kernel module. The motivation is that iocost is not used widely in our production, and some customers don't want to increase kernel size to enable iocost that they will never use, and it'll be painful to maintain a new downstream kernel. Hence it'll be beneficially to build iocost as kernel module: - Kernel Size and Resource Usage, modules are loaded only when their specific functionality is required. - Flexibility and Maintainability, allows for dynamic loading and unloading of modules at runtime without the need to recompile and restart the kernel, for example we can just replace blk-iocost.ko to fix iocost CVE in our production environment. Yu Kuai (7): blk-cgroup: add a new helper pr_cont_blkg_path() cgroup: export cgroup_parse_float block: export some API blk-iocost: factor out helpers to handle params from ioc_qos_write() blk-iocost: parse params before initializing iocost blk-iocost: support to free iocost blk-iocost: support to build iocost as kernel module block/Kconfig | 2 +- block/blk-cgroup.c | 10 ++ block/blk-cgroup.h | 1 + block/blk-iocost.c | 225 ++++++++++++++++++++++++++------------ block/blk-rq-qos.c | 2 + include/linux/blk_types.h | 2 +- kernel/cgroup/cgroup.c | 1 + 7 files changed, 170 insertions(+), 73 deletions(-) -- 2.39.2