patches 1-31 are from mainline
patch 32 add cgroup-V1 support
patch 33 and 34 are from ali-cloud-kernel(https://github.com/alibaba/cloud-kernel.git), they fix bug when introduce iocost in lower kernel.
patch 35 fix a bug when using iocost in sq
Dan Carpenter (1): iocost: don't nest spin_lock_irq in ioc_weight_write()
Jiufei Xue (3): iocost: check active_list of all the ancestors in iocg_activate() iocost: fix NULL pointer dereference in ioc_rqos_throttle iocost: fix a deadlock in ioc_rqos_throttle()
Stephen Rothwell (1): blkcg: blk-iocost: predeclare used structs
Tejun Heo (27): blk-mq: add optional request->alloc_time_ns block/rq_qos: add rq_qos_merge() block/rq_qos: implement rq_qos_ops->queue_depth_changed() blkcg: separate blkcg_conf_get_disk() out of blkg_conf_prep() cgroup: add cgroup_parse_float() cgroup: Move cgroup_parse_float() implementation out of CONFIG_SYSFS blkcg: pass @q and @blkcg into blkcg_pol_alloc_pd_fn() blkcg: make ->cpd_init_fn() optional blkcg: implement blk-iocost blkcg: add tools/cgroup/iocost_monitor.py blkcg: add tools/cgroup/iocost_coef_gen.py blkcg: fix missing free on error path of blk_iocost_init() blkcg: add missing NULL check in ioc_cpd_alloc() blk-iocost: Fix incorrect operation order during iocg free blk-iocost: Account force-charged overage in absolute vtime blk-iocost: Don't let merges push vtime into the future iocost_monitor: Always use strings for json values iocost_monitor: Report more info with higher accuracy iocost_monitor: Report debt iocost: better trace vrate changes iocost: improve nr_lagging handling iocost: bump up default latency targets for hard disks iocost: over-budget forced IOs should schedule async delay iocost: Fix iocost_monitor.py due to helper type mismatch blk-iocost: fix incorrect vtime comparison in iocg_is_idle() blkcg: blkcg_activate_policy() should initialize ancestors first blkcg: Fix multiple bugs in blkcg_activate_policy()
Waiman Long (1): blk-iocost: Fix error on iocost_ioc_vrate_adj
Yu Kuai (2): iocost: add cgroup V1 suport blk-iocost: fix spin_lock won't release in sq
Documentation/admin-guide/cgroup-v2.rst | 103 + block/Kconfig | 13 + block/Makefile | 1 + block/bfq-cgroup.c | 5 +- block/blk-cgroup.c | 136 +- block/blk-core.c | 4 + block/blk-iocost.c | 2547 +++++++++++++++++++++++ block/blk-iolatency.c | 5 +- block/blk-mq.c | 13 +- block/blk-rq-qos.c | 21 + block/blk-rq-qos.h | 5 + block/blk-settings.c | 2 +- block/blk-throttle.c | 6 +- block/blk-wbt.c | 18 +- block/blk-wbt.h | 4 - block/cfq-iosched.c | 5 +- include/linux/blk-cgroup.h | 4 +- include/linux/blk_types.h | 3 + include/linux/blkdev.h | 14 +- include/linux/cgroup.h | 2 + include/trace/events/iocost.h | 178 ++ kernel/cgroup/cgroup.c | 43 + tools/cgroup/iocost_coef_gen.py | 178 ++ tools/cgroup/iocost_monitor.py | 277 +++ 24 files changed, 3522 insertions(+), 65 deletions(-) create mode 100644 block/blk-iocost.c create mode 100644 include/trace/events/iocost.h create mode 100644 tools/cgroup/iocost_coef_gen.py create mode 100644 tools/cgroup/iocost_monitor.py