• Hou Pengyang's avatar
    f2fs: add ovp valid_blocks check for bg gc victim to fg_gc · e93b9865
    Hou Pengyang authored
    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: default avatarHou Pengyang <houpengyang@huawei.com>
    Reviewed-by: default avatarChao Yu <yuchao0@huawei.com>
    Signed-off-by: default avatarJaegeuk Kim <jaegeuk@kernel.org>
    e93b9865
gc.c 24.5 KB