Hello, On Fri, May 13, 2022 at 10:59:28PM +0800, Yahu Gao wrote: > From: Yahu Gao <yahugao@xxxxxxxxxxxxxx> > > Some inode pinned dying memory cgroup and its parent destroyed at first. > The parent's pd of iocost won't be allocated during function > blkcg_activate_policy. > Ignore the DYING CSS to avoid kernel NULL during iocost policy data init. Thanks for the analysis and patch but I'm not quite sure the analysis is correct. When a cgroup goes down, its blkgs are destroyed blkcg_destroy_blkgs() which is invoked by blkcg_unpin_online() when its online_pin reaches zero which is incremented and decremented recursively, so an ancestor's blkgs should be destroyed before a descendant's if the code is working as intended. Can you guys dig a bit deeper and why we're losing ancestor blkgs before descendants? Thanks. -- tejun