Messages in this thread | | | Date | Thu, 21 Jul 2022 19:40:26 -0700 | From | Jaegeuk Kim <> | Subject | Re: [PATCH] f2fs: don't bother wait_ms by foreground gc |
| |
On 07/18, qixiaoyu1 wrote: > f2fs_gc returns -EINVAL via f2fs_balance_fs when there is enough free > secs after write checkpoint, but with gc_merge enabled, it will cause > the sleep time of gc thread to be set to no_gc_sleep_time even if there > are many dirty segments can be selected. > > Signed-off-by: qixiaoyu1 <qixiaoyu1@xiaomi.com> > --- > fs/f2fs/gc.c | 8 ++++++-- > 1 file changed, 6 insertions(+), 2 deletions(-) > > diff --git a/fs/f2fs/gc.c b/fs/f2fs/gc.c > index d5fb426e0747..cb8ca992d986 100644 > --- a/fs/f2fs/gc.c > +++ b/fs/f2fs/gc.c > @@ -150,8 +150,12 @@ static int gc_thread_func(void *data) > gc_control.nr_free_secs = foreground ? 1 : 0; > > /* if return value is not zero, no victim was selected */ > - if (f2fs_gc(sbi, &gc_control)) > - wait_ms = gc_th->no_gc_sleep_time; > + if (f2fs_gc(sbi, &gc_control)) { > + /* don't bother wait_ms by foreground gc */ > + if (!foreground) { > + wait_ms = gc_th->no_gc_sleep_time; > + }
I applied without {} to match the coding style.
Thanks,
> + } > > if (foreground) > wake_up_all(&gc_th->fggc_wq); > -- > 2.36.1
| |