Hello Guys, Cleanup charging io to mem/blkcg a bit: - avoid to store blkcg_css/memcg_css in loop_cmd, and store blkcg_css in loop_worker instead - avoid to acquire ->lo_work_lock in IO path - simplify blkcg_css query via xarray - other misc cleanup V4: - fix build failure in case of !CONFIG_CGROUPS: changed to use 'struct cgroup_subsys_state' as parameter of the added memcg helper; meantime add helper loop_blkcg_css_id() V3: - one patch style change in 7/7 - rebase patch 4/7 against for-5.15/block - add acked-by tag V2: - add helper of memcg_get_e_css - cleanup #ifdef - improve the last patch, as discussed with Dan Schatzberg Ming Lei (7): mm: memcontrol: add helper of memcg_get_e_css loop: clean up blkcg association loop: conver timer for monitoring idle worker into dwork loop: add __loop_free_idle_workers() for covering freeing workers in clearing FD loop: improve loop_process_work loop: use xarray to store workers loop: don't add worker into idle list drivers/block/loop.c | 331 +++++++++++++++++++++---------------- drivers/block/loop.h | 7 +- include/linux/memcontrol.h | 10 ++ 3 files changed, 201 insertions(+), 147 deletions(-) -- 2.31.1