mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-28 06:34:12 +08:00
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: Daeho Jeong <daehojeong@google.com> Reviewed-by: Chao Yu <chao@kernel.org> Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
This commit is contained in:
parent
4cdca5a904
commit
2223fe652f
12
fs/f2fs/gc.c
12
fs/f2fs/gc.c
@ -1728,10 +1728,18 @@ static int do_garbage_collect(struct f2fs_sb_info *sbi,
|
||||
sec_end_segno -= SEGS_PER_SEC(sbi) -
|
||||
f2fs_usable_segs_in_sec(sbi, segno);
|
||||
|
||||
if (gc_type == BG_GC)
|
||||
end_segno = start_segno +
|
||||
if (gc_type == BG_GC) {
|
||||
unsigned int 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)
|
||||
end_segno = sec_end_segno;
|
||||
}
|
||||
|
@ -33,6 +33,7 @@
|
||||
#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 DEF_MIGRATION_WINDOW_GRANULARITY_ZONED 3
|
||||
#define BOOST_GC_MULTIPLE 5
|
||||
|
||||
#define DEF_GC_FAILED_PINNED_FILES 2048
|
||||
#define MAX_GC_FAILED_PINNED_FILES USHRT_MAX
|
||||
|
Loading…
Reference in New Issue
Block a user