lkml.org 
[lkml]   [2022]   [May]   [8]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
Date
SubjectRe: [f2fs-dev] [PATCH 3/5] f2fs: keep wait_ms if EAGAIN happens
From
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))

\
 
 \ /
  Last update: 2022-05-08 16:41    [W:0.214 / U:0.504 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site