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

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
Loading
Loading
Loading
Loading
+10 −2
Original line number Diff line number Diff line
@@ -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;
	}
+1 −0
Original line number Diff line number Diff line
@@ -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