mirror of https://gitee.com/openkylin/linux.git
f2fs: add a new function get_ssr_cost
This patch add a new method get_ssr_cost to select SSR segment more accurately. Signed-off-by: Yunlei He <heyunlei@huawei.com> Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
This commit is contained in:
parent
bd80a4b981
commit
b7b7c4cf1c
11
fs/f2fs/gc.c
11
fs/f2fs/gc.c
|
@ -258,11 +258,20 @@ static unsigned int get_greedy_cost(struct f2fs_sb_info *sbi,
|
|||
valid_blocks * 2 : valid_blocks;
|
||||
}
|
||||
|
||||
static unsigned int get_ssr_cost(struct f2fs_sb_info *sbi,
|
||||
unsigned int segno)
|
||||
{
|
||||
struct seg_entry *se = get_seg_entry(sbi, segno);
|
||||
|
||||
return se->ckpt_valid_blocks > se->valid_blocks ?
|
||||
se->ckpt_valid_blocks : se->valid_blocks;
|
||||
}
|
||||
|
||||
static inline unsigned int get_gc_cost(struct f2fs_sb_info *sbi,
|
||||
unsigned int segno, struct victim_sel_policy *p)
|
||||
{
|
||||
if (p->alloc_mode == SSR)
|
||||
return get_seg_entry(sbi, segno)->ckpt_valid_blocks;
|
||||
return get_ssr_cost(sbi, segno);
|
||||
|
||||
/* alloc_mode == LFS */
|
||||
if (p->gc_mode == GC_GREEDY)
|
||||
|
|
Loading…
Reference in New Issue