Re: [f2fs-dev] [PATCH 2/2] f2fs: avoid infinite GC loop due to stale atomic files

2019-09-09 Thread Jaegeuk Kim
On 09/09, Chao Yu wrote: > On 2019/9/9 16:21, Jaegeuk Kim wrote: > > On 09/09, Chao Yu wrote: > >> On 2019/9/9 16:01, Jaegeuk Kim wrote: > >>> On 09/09, Chao Yu wrote: > On 2019/9/9 15:30, Jaegeuk Kim wrote: > > On 09/09, Chao Yu wrote: > >> On 2019/9/9 9:25, Jaegeuk Kim wrote: >

Re: [PATCH] f2fs: fix to avoid accessing uninitialized field of inode page in is_alive()

2019-09-09 Thread Jaegeuk Kim
On 09/09, Chao Yu wrote: > On 2019/9/9 16:37, Jaegeuk Kim wrote: > > On 09/09, Chao Yu wrote: > >> On 2019/9/9 15:58, Chao Yu wrote: > >>> On 2019/9/9 15:44, Jaegeuk Kim wrote: > On 09/07, Chao Yu wrote: > > On 2019-9-7 7:48, Jaegeuk Kim wrote: > >> On 09/06, Chao Yu wrote: > >>>

Re: [f2fs-dev] [PATCH 2/2] f2fs: avoid infinite GC loop due to stale atomic files

2019-09-09 Thread Chao Yu
On 2019/9/9 16:21, Jaegeuk Kim wrote: > On 09/09, Chao Yu wrote: >> On 2019/9/9 16:01, Jaegeuk Kim wrote: >>> On 09/09, Chao Yu wrote: On 2019/9/9 15:30, Jaegeuk Kim wrote: > On 09/09, Chao Yu wrote: >> On 2019/9/9 9:25, Jaegeuk Kim wrote: >>> If committing atomic pages is failed

Re: [PATCH] f2fs: fix to avoid accessing uninitialized field of inode page in is_alive()

2019-09-09 Thread Chao Yu
On 2019/9/9 16:37, Jaegeuk Kim wrote: > On 09/09, Chao Yu wrote: >> On 2019/9/9 15:58, Chao Yu wrote: >>> On 2019/9/9 15:44, Jaegeuk Kim wrote: On 09/07, Chao Yu wrote: > On 2019-9-7 7:48, Jaegeuk Kim wrote: >> On 09/06, Chao Yu wrote: >>> If inode is newly created, inode page may

Re: [PATCH] f2fs: fix to avoid accessing uninitialized field of inode page in is_alive()

2019-09-09 Thread Jaegeuk Kim
On 09/07, Chao Yu wrote: > On 2019-9-7 7:48, Jaegeuk Kim wrote: > > On 09/06, Chao Yu wrote: > >> If inode is newly created, inode page may not synchronize with inode cache, > >> so fields like .i_inline or .i_extra_isize could be wrong, in below call > >> path, we may access such wrong fields,

Re: [f2fs-dev] [PATCH 2/2] f2fs: avoid infinite GC loop due to stale atomic files

2019-09-09 Thread Chao Yu
On 2019/9/9 16:01, Jaegeuk Kim wrote: > On 09/09, Chao Yu wrote: >> On 2019/9/9 15:30, Jaegeuk Kim wrote: >>> On 09/09, Chao Yu wrote: On 2019/9/9 9:25, Jaegeuk Kim wrote: > If committing atomic pages is failed when doing f2fs_do_sync_file(), we > can > get commited pages but

Re: [f2fs-dev] [PATCH 1/2] f2fs: do not select same victim right again

2019-09-09 Thread Jaegeuk Kim
On 09/09, Chao Yu wrote: > On 2019/9/9 9:25, Jaegeuk Kim wrote: > > GC must avoid select the same victim again. > > Blocks in previous victim will occupy addition free segment, I doubt after > this > change, FGGC may encounter out-of-free space issue more frequently. Hmm, actually this change

Re: [f2fs-dev] [PATCH 2/2] f2fs: avoid infinite GC loop due to stale atomic files

2019-09-09 Thread Jaegeuk Kim
On 09/09, Chao Yu wrote: > On 2019/9/9 16:01, Jaegeuk Kim wrote: > > On 09/09, Chao Yu wrote: > >> On 2019/9/9 15:30, Jaegeuk Kim wrote: > >>> On 09/09, Chao Yu wrote: > On 2019/9/9 9:25, Jaegeuk Kim wrote: > > If committing atomic pages is failed when doing f2fs_do_sync_file(), we >

Re: [PATCH] f2fs: fix to avoid accessing uninitialized field of inode page in is_alive()

2019-09-09 Thread Jaegeuk Kim
On 09/09, Chao Yu wrote: > On 2019/9/9 15:58, Chao Yu wrote: > > On 2019/9/9 15:44, Jaegeuk Kim wrote: > >> On 09/07, Chao Yu wrote: > >>> On 2019-9-7 7:48, Jaegeuk Kim wrote: > On 09/06, Chao Yu wrote: > > If inode is newly created, inode page may not synchronize with inode > >

Re: [f2fs-dev] [PATCH 2/2] f2fs: avoid infinite GC loop due to stale atomic files

2019-09-09 Thread Jaegeuk Kim
On 09/09, Jaegeuk Kim wrote: > On 09/09, Chao Yu wrote: > > On 2019/9/9 16:21, Jaegeuk Kim wrote: > > > On 09/09, Chao Yu wrote: > > >> On 2019/9/9 16:01, Jaegeuk Kim wrote: > > >>> On 09/09, Chao Yu wrote: > > On 2019/9/9 15:30, Jaegeuk Kim wrote: > > > On 09/09, Chao Yu wrote: > >

Re: [f2fs-dev] [PATCH 2/2] f2fs: avoid infinite GC loop due to stale atomic files

2019-09-09 Thread Jaegeuk Kim
On 09/09, Chao Yu wrote: > On 2019/9/9 9:25, Jaegeuk Kim wrote: > > If committing atomic pages is failed when doing f2fs_do_sync_file(), we can > > get commited pages but atomic_file being still set like: > > > > - inmem:0, atomic IO:4 (Max. 10), volatile IO:0 (Max.0) > > > >

Re: [f2fs-dev] [PATCH 2/2] f2fs: avoid infinite GC loop due to stale atomic files

2019-09-09 Thread Jaegeuk Kim
On 09/09, Chao Yu wrote: > On 2019/9/9 15:30, Jaegeuk Kim wrote: > > On 09/09, Chao Yu wrote: > >> On 2019/9/9 9:25, Jaegeuk Kim wrote: > >>> If committing atomic pages is failed when doing f2fs_do_sync_file(), we > >>> can > >>> get commited pages but atomic_file being still set like: > >>> >

Re: [f2fs-dev] [PATCH 2/2] f2fs: avoid infinite GC loop due to stale atomic files

2019-09-09 Thread Chao Yu
On 2019/9/9 15:30, Jaegeuk Kim wrote: > On 09/09, Chao Yu wrote: >> On 2019/9/9 9:25, Jaegeuk Kim wrote: >>> If committing atomic pages is failed when doing f2fs_do_sync_file(), we can >>> get commited pages but atomic_file being still set like: >>> >>> - inmem:0, atomic IO:4 (Max. 10),

Re: [PATCH] f2fs: fix to avoid accessing uninitialized field of inode page in is_alive()

2019-09-09 Thread Chao Yu
On 2019/9/9 17:33, Jaegeuk Kim wrote: > On 09/09, Chao Yu wrote: >> On 2019/9/9 16:37, Jaegeuk Kim wrote: >>> On 09/09, Chao Yu wrote: On 2019/9/9 15:58, Chao Yu wrote: > On 2019/9/9 15:44, Jaegeuk Kim wrote: >> On 09/07, Chao Yu wrote: >>> On 2019-9-7 7:48, Jaegeuk Kim wrote:

Re: [f2fs-dev] [PATCH 1/2] f2fs: do not select same victim right again

2019-09-09 Thread Chao Yu
On 2019/9/9 16:06, Jaegeuk Kim wrote: > On 09/09, Chao Yu wrote: >> On 2019/9/9 9:25, Jaegeuk Kim wrote: >>> GC must avoid select the same victim again. >> >> Blocks in previous victim will occupy addition free segment, I doubt after >> this >> change, FGGC may encounter out-of-free space issue

Re: [f2fs-dev] [PATCH 2/2] f2fs: avoid infinite GC loop due to stale atomic files

2019-09-09 Thread Chao Yu
On 2019/9/9 16:38, Jaegeuk Kim wrote: > On 09/09, Chao Yu wrote: >> On 2019/9/9 16:21, Jaegeuk Kim wrote: >>> On 09/09, Chao Yu wrote: On 2019/9/9 16:01, Jaegeuk Kim wrote: > On 09/09, Chao Yu wrote: >> On 2019/9/9 15:30, Jaegeuk Kim wrote: >>> On 09/09, Chao Yu wrote: On

Re: [f2fs-dev] [PATCH 1/2] f2fs: do not select same victim right again

2019-09-09 Thread Jaegeuk Kim
On 09/09, Chao Yu wrote: > On 2019/9/9 16:06, Jaegeuk Kim wrote: > > On 09/09, Chao Yu wrote: > >> On 2019/9/9 9:25, Jaegeuk Kim wrote: > >>> GC must avoid select the same victim again. > >> > >> Blocks in previous victim will occupy addition free segment, I doubt after > >> this > >> change,

Re: [PATCH] f2fs: fix to avoid accessing uninitialized field of inode page in is_alive()

2019-09-09 Thread Chao Yu
On 2019/9/9 15:44, Jaegeuk Kim wrote: > On 09/07, Chao Yu wrote: >> On 2019-9-7 7:48, Jaegeuk Kim wrote: >>> On 09/06, Chao Yu wrote: If inode is newly created, inode page may not synchronize with inode cache, so fields like .i_inline or .i_extra_isize could be wrong, in below call

Re: [PATCH] f2fs: fix to avoid accessing uninitialized field of inode page in is_alive()

2019-09-09 Thread Chao Yu
On 2019/9/9 15:58, Chao Yu wrote: > On 2019/9/9 15:44, Jaegeuk Kim wrote: >> On 09/07, Chao Yu wrote: >>> On 2019-9-7 7:48, Jaegeuk Kim wrote: On 09/06, Chao Yu wrote: > If inode is newly created, inode page may not synchronize with inode > cache, > so fields like .i_inline or

Re: [f2fs-dev] [PATCH 2/2] f2fs: avoid infinite GC loop due to stale atomic files

2019-09-09 Thread Jaegeuk Kim
On 09/09, Chao Yu wrote: > On 2019/9/9 16:38, Jaegeuk Kim wrote: > > On 09/09, Chao Yu wrote: > >> On 2019/9/9 16:21, Jaegeuk Kim wrote: > >>> On 09/09, Chao Yu wrote: > On 2019/9/9 16:01, Jaegeuk Kim wrote: > > On 09/09, Chao Yu wrote: > >> On 2019/9/9 15:30, Jaegeuk Kim wrote: >

Re: [PATCH] f2fs: fix to avoid accessing uninitialized field of inode page in is_alive()

2019-09-09 Thread Jaegeuk Kim
On 09/09, Chao Yu wrote: > On 2019/9/9 17:33, Jaegeuk Kim wrote: > > On 09/09, Chao Yu wrote: > >> On 2019/9/9 16:37, Jaegeuk Kim wrote: > >>> On 09/09, Chao Yu wrote: > On 2019/9/9 15:58, Chao Yu wrote: > > On 2019/9/9 15:44, Jaegeuk Kim wrote: > >> On 09/07, Chao Yu wrote: > >>>

[f2fs-dev] [PATCH v2] f2fs: fix to avoid accessing uninitialized field of inode page in is_alive()

2019-09-09 Thread Chao Yu
If inode is newly created, inode page may not synchronize with inode cache, so fields like .i_inline or .i_extra_isize could be wrong, in below call path, we may access such wrong fields, result in failing to migrate valid target block. Thread AThread B -

Re: [f2fs-dev] [PATCH 2/2] f2fs: avoid infinite GC loop due to stale atomic files

2019-09-09 Thread Chao Yu
On 2019/9/9 22:34, Jaegeuk Kim wrote: > On 09/09, Chao Yu wrote: >> On 2019/9/9 16:38, Jaegeuk Kim wrote: >>> On 09/09, Chao Yu wrote: On 2019/9/9 16:21, Jaegeuk Kim wrote: > On 09/09, Chao Yu wrote: >> On 2019/9/9 16:01, Jaegeuk Kim wrote: >>> On 09/09, Chao Yu wrote: On

Re: [f2fs-dev] [PATCH] f2fs: fix to avoid accessing uninitialized field of inode page in is_alive()

2019-09-09 Thread Chao Yu
On 2019/9/9 22:37, Jaegeuk Kim wrote: > On 09/09, Chao Yu wrote: >> On 2019/9/9 17:33, Jaegeuk Kim wrote: >>> On 09/09, Chao Yu wrote: On 2019/9/9 16:37, Jaegeuk Kim wrote: > On 09/09, Chao Yu wrote: >> On 2019/9/9 15:58, Chao Yu wrote: >>> On 2019/9/9 15:44, Jaegeuk Kim wrote: