]> git.baikalelectronics.ru Git - kernel.git/commit
f2fs: add ovp valid_blocks check for bg gc victim to fg_gc
authorHou Pengyang <houpengyang@huawei.com>
Thu, 16 Feb 2017 12:34:31 +0000 (12:34 +0000)
committerJaegeuk Kim <jaegeuk@kernel.org>
Thu, 23 Feb 2017 19:28:20 +0000 (11:28 -0800)
commit878ec79d603320cfb3ff5f60cd746ddfe7803ac7
tree40675944d4c7d3a68fd3568637597095a1a6c489
parent134a5b56ebcab3b23fcd75cc3e5a39f0c9733694
f2fs: add ovp valid_blocks check for bg gc victim to fg_gc

For foreground gc, greedy algorithm should be adapted, which makes
this formula work well:

(2 * (100 / config.overprovision + 1) + 6)

But currently, we fg_gc have a prior to select bg_gc victim segments to gc
first, these victims are selected by cost-benefit algorithm, we can't guarantee
such segments have the small valid blocks, which may destroy the f2fs rule, on
the worstest case, would consume all the free segments.

This patch fix this by add a filter in check_bg_victims, if segment's has # of
valid blocks over overprovision ratio, skip such segments.

Cc: <stable@vger.kernel.org>
Signed-off-by: Hou Pengyang <houpengyang@huawei.com>
Reviewed-by: Chao Yu <yuchao0@huawei.com>
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
fs/f2fs/f2fs.h
fs/f2fs/gc.c
fs/f2fs/segment.h