On 11/8/19 1:18 PM, Tejun Heo wrote: > cgroup writeback tries to refresh the associated wb immediately if the > current wb is dead. This is to avoid keeping issuing IOs on the stale > wb after memcg - blkcg association has changed (ie. when blkcg got > disabled / enabled higher up in the hierarchy). > > Unfortunately, the logic gets triggered spuriously on inodes which are > associated with dead cgroups. When the logic is triggered on dead > cgroups, the attempt fails only after doing quite a bit of work > allocating and initializing a new wb. > > While c3aab9a0bd91 ("mm/filemap.c: don't initiate writeback if mapping > has no dirty pages") alleviated the issue significantly as it now only > triggers when the inode has dirty pages. However, the condition can > still be triggered before the inode is switched to a different cgroup > and the logic simply doesn't make sense. > > Skip the immediate switching if the associated memcg is dying. > > This is a simplified version of the following two patches: > > * https://lore.kernel.org/linux-mm/20190513183053.GA73423@dennisz-mbp/ > * http://lkml.kernel.org/r/156355839560.2063.5265687291430814589.stgit@buzz Applied for 5.4, thanks. -- Jens Axboe