Fwd: ubi: fastmap: Fix a series of wear leveling problems

From: Bagas Sanjaya
Date: Wed Aug 16 2023 - 05:57:56 EST


Hi,

I notice a bug report with proposed fixes on Bugzilla [1]. Quoting from it
(only the first problem that is quoted):

> Problem 1: large erase counter for single fastmap data PEB
>
> Config:
> x86_64 qemu
> flash: nandsim
> CONFIG_MTD_UBI_WL_THRESHOLD=128
> CONFIG_MTD_UBI_FASTMAP=y
> ubi->beb_rsvd_pebs=0
>
> Running fsstress on ubifs for 3h(fastmap data PEB has large erase counter than others):
> =========================================================
> from to count min avg max
> ---------------------------------------------------------
> 0 .. 9: 0 0 0 0
> 10 .. 99: 532 84 92 99
> 100 .. 999: 15787 100 147 229
> 1000 .. 9999: 64 4699 4765 4826
> 10000 .. 99999: 0 0 0 0
> 100000 .. inf: 1 272935 272935 272935
> ---------------------------------------------------------
> Total : 16384 84 180 272935
> PEB 8031(ec=272935) is always taken for fastmap data.
>
> After fix, running fsstress on ubifs for 12h(no pool reservation), no individual peb has big erase counter:
> =========================================================
> from to count min avg max
> ---------------------------------------------------------
> 0 .. 9: 0 0 0 0
> 10 .. 99: 0 0 0 0
> 100 .. 999: 16320 609 642 705
> 1000 .. 9999: 0 0 0 0
> 10000 .. 99999: 64 18176 18234 18303
> 100000 .. inf: 0 0 0 0
> ---------------------------------------------------------
> Total : 16384 609 710 18303

See Bugzilla for the full thread (with other problems mentioned) and
attached patch series that fixes them.

Zhihao: I asked you on BZ to send your patches to linux-mtd list,
but you didn't respond there. Would you like to send them for
review?

Thanks.

[1]: https://bugzilla.kernel.org/show_bug.cgi?id=217787

--
An old man doll... just what I always wanted! - Clara