ubi on MLC nand flash

Mike Dunn mikedunn at newsguy.com
Tue Nov 8 20:51:30 EST 2011


Hi Artem, thanks for having a look.

On 11/08/2011 01:32 PM, Artem Bityutskiy wrote:
> On Sun, 2011-11-06 at 07:24 -0800, Mike Dunn wrote:
>
>> What I find is that, after a few minutes, enough PEBs are marked as bad to
>> exhaust the reserve PEB pool
> I guess you can make it larger, the default 1% is just something which
> was good enough for our super-robust OneNAND flash.


This device only has 512 erase blocks (256K each), and typically fewer usable
for a filesystem, so I hate to expend more for overhead.


> Also, for MLC you probably want a smaller WL threshold, I heard that
> modern MLCs have ereaseblock liftimes smaller than 10000 erase-cycles.
> So the default 4096 might be too big.


Thanks.  Did see the comment in ubi/Kconfig.


>> , UBI switches to r/o mode, and the test fails.  The
>> reason is that - on this device at least - bit flips seem to be persistent;
>> i.e., you will get e.g. 1 bit flip every time you read a certain page. 
>> Consequently, when the bit flip occurs and the PEB gets scrubbed, the torture
>> test fails because the bit flip reoccurs, and the PEB is marked bad.
> A quick hack you can do to go further in your investigations without
> being block by this issue is to hack your driver and make it to just not
> return -EUCLEAN in case of 1 bit flip or may be even 2. Then you can see
> ahead what else happens to UBI.


Already done as a temporary work-around.  But -EUCLEAN is actually returned from
nand_base.c

Mike




More information about the linux-mtd mailing list