On 10/20, Ju Hyung Park wrote: > This does seem to fix the problem I've been having. > > I was encountering all I/Os to be blocked on my Android device > almost on a daily basis, but after this patch I'm rock solid for almost a > week. > > I'd appreciate it if you could add the following tags: > Reported-by: Park Ju Hyung <qkrwngud...@gmail.com> > Tested-by: Park Ju Hyung <qkrwngud...@gmail.com> > > Also, a little additional note would be helpful > for those who are unfamiliar with f2fs: > This fixes a deadlock causing all I/Os to be blocked during heavy GC.
Cool. Please check the below. :P https://git.kernel.org/pub/scm/linux/kernel/git/jaegeuk/f2fs.git/commit/?h=dev&id=b921ec4e7fb5df13f805bc04375ed529faa095ae Thanks, > > Thanks, > On Wed, Oct 17, 2018 at 11:34 AM Jaegeuk Kim <jaeg...@kernel.org> wrote: > > > > This reverts commit 66110abc4c931f879d70e83e1281f891699364bf. > > > > If we clear the cold data flag out of the writeback flow, we can miscount > > -1 by end_io. > > > > Balancing F2FS Async: > > - IO (CP: 1, Data: -1, Flush: ( 0 0 1), Discard: ( ... > > > > GC thread: IRQ > > - move_data_page() > > - set_page_dirty() > > - clear_cold_data() > > - f2fs_write_end_io() > > - type = WB_DATA_TYPE(page); > > here, we get wrong type > > - dec_page_count(sbi, type); > > - f2fs_wait_on_page_writeback() > > > > Cc: <sta...@vger.kernel.org> > > Signed-off-by: Jaegeuk Kim <jaeg...@kernel.org> > > --- > > fs/f2fs/data.c | 4 ---- > > 1 file changed, 4 deletions(-) > > > > diff --git a/fs/f2fs/data.c b/fs/f2fs/data.c > > index 3f272c18fb61..0d0b4dd55b04 100644 > > --- a/fs/f2fs/data.c > > +++ b/fs/f2fs/data.c > > @@ -2650,10 +2650,6 @@ static int f2fs_set_data_page_dirty(struct page > > *page) > > if (!PageUptodate(page)) > > SetPageUptodate(page); > > > > - /* don't remain PG_checked flag which was set during GC */ > > - if (is_cold_data(page)) > > - clear_cold_data(page); > > - > > if (f2fs_is_atomic_file(inode) && > > !f2fs_is_commit_atomic_write(inode)) { > > if (!IS_ATOMIC_WRITTEN_PAGE(page)) { > > f2fs_register_inmem_page(inode, page); > > -- > > 2.19.0.605.g01d371f741-goog > > > > > > > > _______________________________________________ > > Linux-f2fs-devel mailing list > > Linux-f2fs-devel@lists.sourceforge.net > > https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel _______________________________________________ Linux-f2fs-devel mailing list Linux-f2fs-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel