Messages in this thread Patch in this message | | | Date | Sun, 8 May 2022 22:41:14 +0800 | Subject | Re: [f2fs-dev] [PATCH 3/5] f2fs: keep wait_ms if EAGAIN happens | From | Chao Yu <> |
| |
On 2022/5/7 7:20, Jaegeuk Kim wrote: > In f2fs_gc thread, let's keep wait_ms when sec_freed was zero.
sec_freed won't increase for background GC due to below statement:
if (gc_type == FG_GC && get_valid_blocks(sbi, segno, false) == 0) seg_freed++;
It may cause gc thread migrates lots of segments in each round?
Thanks,
> > Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org> > --- > fs/f2fs/gc.c | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/fs/f2fs/gc.c b/fs/f2fs/gc.c > index aeffcc1d5c02..ec3f6f876e76 100644 > --- a/fs/f2fs/gc.c > +++ b/fs/f2fs/gc.c > @@ -37,7 +37,8 @@ static int gc_thread_func(void *data) > unsigned int wait_ms; > struct f2fs_gc_control gc_control = { > .victim_segno = NULL_SEGNO, > - .should_migrate_blocks = false }; > + .should_migrate_blocks = false, > + .err_gc_skipped = false }; > > wait_ms = gc_th->min_sleep_time; > > @@ -146,7 +147,6 @@ static int gc_thread_func(void *data) > > gc_control.init_gc_type = sync_mode ? FG_GC : BG_GC; > gc_control.no_bg_gc = foreground; > - gc_control.err_gc_skipped = sync_mode; > > /* if return value is not zero, no victim was selected */ > if (f2fs_gc(sbi, &gc_control))
| |