Hi Yunlei, On 05/31, Yunlei He wrote: > This reverts commit 4db08d016ccedb5b97869724a096990acad59685 to > fix hungtask problem which can be reproduced as follow: > > Thread 0~3: > > while true > do > touch /xxx/test/file_xxx > done > > Thread 5 write a new checkpoint every three seconds. > > In the meantime, fio start 16 threads for randwrite. > > With my debug info, cycles num will exceed 1000 in function > f2fs_sync_dirty_inodes, and most of cycle will be dropped > into congestion_wait() and sleep more than 20ms.
Original patch tries to fix watchdog which sync_dirty_inodes() grabs one cpu for a long time. Have you tried reproduce that as well? Thanks, > > Signed-off-by: Yunlei He <[email protected]> > --- > fs/f2fs/checkpoint.c | 10 ---------- > 1 file changed, 10 deletions(-) > > diff --git a/fs/f2fs/checkpoint.c b/fs/f2fs/checkpoint.c > index 8eb184c..76e1856 100644 > --- a/fs/f2fs/checkpoint.c > +++ b/fs/f2fs/checkpoint.c > @@ -944,7 +944,6 @@ int f2fs_sync_dirty_inodes(struct f2fs_sb_info *sbi, enum > inode_type type) > struct inode *inode; > struct f2fs_inode_info *fi; > bool is_dir = (type == DIR_INODE); > - unsigned long ino = 0; > > trace_f2fs_sync_dirty_inodes_enter(sbi->sb, is_dir, > get_pages(sbi, is_dir ? > @@ -967,8 +966,6 @@ int f2fs_sync_dirty_inodes(struct f2fs_sb_info *sbi, enum > inode_type type) > inode = igrab(&fi->vfs_inode); > spin_unlock(&sbi->inode_lock[type]); > if (inode) { > - unsigned long cur_ino = inode->i_ino; > - > if (is_dir) > F2FS_I(inode)->cp_task = current; > > @@ -978,13 +975,6 @@ int f2fs_sync_dirty_inodes(struct f2fs_sb_info *sbi, > enum inode_type type) > F2FS_I(inode)->cp_task = NULL; > > iput(inode); > - /* We need to give cpu to another writers. */ > - if (ino == cur_ino) { > - congestion_wait(BLK_RW_ASYNC, HZ/50); > - cond_resched(); > - } else { > - ino = cur_ino; > - } > } else { > /* > * We should submit bio, since it exists several > -- > 1.9.1 ------------------------------------------------------------------------------ Check out the vibrant tech community on one of the world's most engaging tech sites, Slashdot.org! http://sdm.link/slashdot _______________________________________________ Linux-f2fs-devel mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel
