summaryrefslogtreecommitdiffstats
path: root/fs/f2fs/gc.c
diff options
context:
space:
mode:
authorJaegeuk Kim <jaegeuk@kernel.org>2017-04-18 15:03:15 -0700
committerJaegeuk Kim <jaegeuk@kernel.org>2017-04-24 13:06:53 -0700
commitd579324998a39fa6e13edea2f06506840df9b729 (patch)
tree31a502bdbbcf03803b2ddb22dd0ac10a5cc11964 /fs/f2fs/gc.c
parentd07efb507779171bd670e8a12f283a3e245cde08 (diff)
downloadlinux-d579324998a39fa6e13edea2f06506840df9b729.tar.gz
linux-d579324998a39fa6e13edea2f06506840df9b729.tar.bz2
linux-d579324998a39fa6e13edea2f06506840df9b729.zip
f2fs: assign allocation hint for warm/cold data
This patch gives slower device region to warm/cold data area more eagerly. Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
Diffstat (limited to 'fs/f2fs/gc.c')
-rw-r--r--fs/f2fs/gc.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/fs/f2fs/gc.c b/fs/f2fs/gc.c
index 74a10b7675f5..84db41ca27c1 100644
--- a/fs/f2fs/gc.c
+++ b/fs/f2fs/gc.c
@@ -1033,4 +1033,9 @@ void build_gc_manager(struct f2fs_sb_info *sbi)
sbi->fggc_threshold = div64_u64((main_count - ovp_count) *
BLKS_PER_SEC(sbi), (main_count - resv_count));
+
+ /* give warm/cold data area from slower device */
+ if (sbi->s_ndevs && sbi->segs_per_sec == 1)
+ SIT_I(sbi)->last_victim[ALLOC_NEXT] =
+ GET_SEGNO(sbi, FDEV(0).end_blk) + 1;
}