FYI, I am still of the firm opinion that the current cgroup support in the loop driver needs to be reverted and be redone cleanly from scratch without impacting the normal non-cgroup path at all. On Fri, Aug 06, 2021 at 04:02:55PM +0800, Ming Lei wrote: > 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 ---end quoted text---