Re: [PATCH 2/3] writeback: Fix sync livelock due to b_dirty_time processing

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed 10-06-20 08:06:14, Christoph Hellwig wrote:
> On Mon, Jun 01, 2020 at 11:18:56AM +0200, Jan Kara wrote:
> > When we are processing writeback for sync(2), move_expired_inodes()
> > didn't set any inode expiry value (older_than_this). This can result in
> > writeback never completing if there's steady stream of inodes added to
> > b_dirty_time list as writeback rechecks dirty lists after each writeback
> > round whether there's more work to be done. Fix the problem by using
> > sync(2) start time is inode expiry value when processing b_dirty_time
> > list similarly as for ordinarily dirtied inodes. This requires some
> > refactoring of older_than_this handling which simplifies the code
> > noticeably as a bonus.
> 
> Looks sane, but if you touch all the older_than_this users can we
> rename it to something more reasonable like oldest or oldest_jif?

OK, I can certainly rename this. I've just realized that 'oldest' is really
misleading since we are in fact processing inodes that were dirtied before
the given time. So maybe name that 'dirtied_before'?

								Honza
-- 
Jan Kara <jack@xxxxxxxx>
SUSE Labs, CR



[Index of Archives]     [Linux Ext4 Filesystem]     [Union Filesystem]     [Filesystem Testing]     [Ceph Users]     [Ecryptfs]     [AutoFS]     [Kernel Newbies]     [Share Photos]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux Cachefs]     [Reiser Filesystem]     [Linux RAID]     [Samba]     [Device Mapper]     [CEPH Development]

  Powered by Linux