Commit 2223fe65 authored by Daeho Jeong's avatar Daeho Jeong Committed by Jaegeuk Kim

f2fs: increase BG GC migration window granularity when boosted for zoned devices

Need bigger BG GC migration window granularity when free section is
running low.
Signed-off-by: default avatarDaeho Jeong <daehojeong@google.com>
Reviewed-by: default avatarChao Yu <chao@kernel.org>
Signed-off-by: default avatarJaegeuk Kim <jaegeuk@kernel.org>
parent 4cdca5a9
...@@ -1728,10 +1728,18 @@ static int do_garbage_collect(struct f2fs_sb_info *sbi, ...@@ -1728,10 +1728,18 @@ static int do_garbage_collect(struct f2fs_sb_info *sbi,
sec_end_segno -= SEGS_PER_SEC(sbi) - sec_end_segno -= SEGS_PER_SEC(sbi) -
f2fs_usable_segs_in_sec(sbi, segno); f2fs_usable_segs_in_sec(sbi, segno);
if (gc_type == BG_GC) if (gc_type == BG_GC) {
end_segno = start_segno + unsigned int window_granularity =
sbi->migration_window_granularity; sbi->migration_window_granularity;
if (f2fs_sb_has_blkzoned(sbi) &&
!has_enough_free_blocks(sbi,
LIMIT_BOOST_ZONED_GC))
window_granularity *= BOOST_GC_MULTIPLE;
end_segno = start_segno + window_granularity;
}
if (end_segno > sec_end_segno) if (end_segno > sec_end_segno)
end_segno = sec_end_segno; end_segno = sec_end_segno;
} }
......
...@@ -33,6 +33,7 @@ ...@@ -33,6 +33,7 @@
#define LIMIT_NO_ZONED_GC 60 /* percentage over total user space of no gc for zoned devices */ #define LIMIT_NO_ZONED_GC 60 /* percentage over total user space of no gc for zoned devices */
#define LIMIT_BOOST_ZONED_GC 25 /* percentage over total user space of boosted gc for zoned devices */ #define LIMIT_BOOST_ZONED_GC 25 /* percentage over total user space of boosted gc for zoned devices */
#define DEF_MIGRATION_WINDOW_GRANULARITY_ZONED 3 #define DEF_MIGRATION_WINDOW_GRANULARITY_ZONED 3
#define BOOST_GC_MULTIPLE 5
#define DEF_GC_FAILED_PINNED_FILES 2048 #define DEF_GC_FAILED_PINNED_FILES 2048
#define MAX_GC_FAILED_PINNED_FILES USHRT_MAX #define MAX_GC_FAILED_PINNED_FILES USHRT_MAX
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment