• Zhihao Cheng's avatar
    ubi: fastmap: Wait until there are enough free PEBs before filling pools · a2ea69da
    Zhihao Cheng authored
    Wait until there are enough free PEBs before filling pool/wl_pool,
    sometimes erase_worker is not scheduled in time, which causes two
    situations:
     A. There are few PEBs filled in pool, which makes ubi_update_fastmap
        is frequently called and leads first 64 PEBs are erased more times
        than other PEBs. So waiting free PEBs before filling pool reduces
        fastmap updating frequency and prolongs flash service life.
     B. In situation that space is nearly running out, ubi_refill_pools()
        cannot make sure pool and wl_pool are filled with free PEBs, caused
        by the delay of erase_worker. After this patch applied, there must
        exist free PEBs in pool after one call of ubi_update_fastmap.
    
    Besides, this patch is a preparetion for fixing large erase counter in
    fastmap data block and fixing lapsed wear leveling for first 64 PEBs.
    
    Link: https://bugzilla.kernel.org/show_bug.cgi?id=217787Signed-off-by: default avatarZhihao Cheng <chengzhihao1@huawei.com>
    Signed-off-by: default avatarRichard Weinberger <richard@nod.at>
    a2ea69da
fastmap.c 39.4 KB