• Chao Yu's avatar
    f2fs: fix to correct no_fggc_candidate · 7e515b31
    Chao Yu authored
    There may be extreme case as below:
    
    For one section contains one segment, and there are total 100 segments
    with 10% over-privision ratio in f2fs partition, fggc_threshold will
    be rounded down to 460 instead of 460.8 as below caclulation:
    
    sbi->fggc_threshold = div_u64((u64)(main_count - ovp_count) *
    			BLKS_PER_SEC(sbi), (main_count - resv_count));
    
    If section usage is as:
    60 segments which contain 460 valid blocks
    40 segments which contain 462 valid blocks
    
    As valid block number in all sections is large than fggc_threshold, so
    none of them will be chosen as candidate due to incorrect fggc_threshold.
    
    Let's just soften the term of choosing foreground GC candidates.
    Signed-off-by: default avatarChao Yu <yuchao0@huawei.com>
    Signed-off-by: default avatarJaegeuk Kim <jaegeuk@kernel.org>
    7e515b31
segment.h 24.3 KB