[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <eb8f1316-11df-ab02-1834-542ca193c17c@kernel.org>
Date: Sun, 8 May 2022 22:41:14 +0800
From: Chao Yu <chao@...nel.org>
To: Jaegeuk Kim <jaegeuk@...nel.org>, linux-kernel@...r.kernel.org,
linux-f2fs-devel@...ts.sourceforge.net
Subject: Re: [f2fs-dev] [PATCH 3/5] f2fs: keep wait_ms if EAGAIN happens
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@...nel.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))
Powered by blists - more mailing lists