Hello Tejun! On Thu 20-06-19 10:02:50, Tejun Heo wrote: > On Thu, Jun 20, 2019 at 05:21:45PM +0200, Jan Kara wrote: > > I'm completely ignorant of how btrfs compressed writeback works so don't > > quite understand implications of this. So does this mean that writeback to > > btrfs compressed files won't be able to transition inodes from one memcg to > > another? Or are you trying to say the 'wbc' used from async worker thread > > is actually a dummy one and we would double-account the writeback? > > So, before, only the async compression workers would run through the > wbc accounting code regardless of who originated the dirty pages, > which is obviously wrong. After the patch, the code accounts when the > dirty pages are being handed off to the compression workers and > no_wbc_acct is used to suppress spurious accounting from the workers. OK, now I understand. Just one more question: So effectively, you are using wbc->no_wbc_acct to pass information from btrfs code to btrfs code telling it whether IO should or should not be accounted with wbc_account_io(). Wouldn't it make more sense to just pass this information internally within btrfs? Granted, if this mechanism gets more widespread use by other filesystems, then probably using wbc flag makes more sense. But I'm not sure if this isn't a premature generalization... Honza -- Jan Kara <jack@xxxxxxxx> SUSE Labs, CR