Corrupt empty space
Gupta, Pekon
pekon at ti.com
Fri Mar 21 03:50:10 EDT 2014
>From: Artem Bityutskiy [mailto:dedekind1 at gmail.com]
>
>On Fri, 2014-03-21 at 07:18 +0000, Gupta, Pekon wrote:
>> It's still getting discussed in [a] and [b]. But there are multiple issues to it.
>>
>> (1) Many hardware controllers cannot parse ECC errors in blank-pages.
>> So, checking number of 0-bits in a page is done in software by comparing
>> each byte with 0xff.
>
>OK.
>
>> (2) Counting number of 0-bits in a page in software, brings down your read-performance.
>
>UBIFS _only_ needs this when doing recovery, which is _only_ done after
>unclean reboots, and this kind of reads would be done _only_ for a
>couple of max I/O units and _only_ if there is a corrupted node in the
>journal.
>
>IOW, this would be done rarely, and for just few pages on mount.
>
Sorry. I din't clarify. Read performance drops in NAND driver itself, nothing
related to UBIFS.
Because of (1) you need to filter-out erased-pages with bit-flips before
driver sends data to hardware engine for ECC error correction. This filtering
of erased-page in software (by comparing each byte for 0-bits) causes
this read performance drop.
However, there is no work-around to it, as it’s a kind of missing feature
in hardware. But we are trying to optimize this implementation.
http://lists.infradead.org/pipermail/linux-mtd/2014-March/052653.html
Also, as there are multiple threads on same topic, If would be helpful
if you can review and continue discussion over there.
*Thread on NAND Driver changes*
http://lists.infradead.org/pipermail/linux-mtd/2014-March/thread.html
grep "mtd: nand: add erased-page bitflip correction"
*Thread on UBIFS changes*
http://lists.infradead.org/pipermail/linux-mtd/2014-March/thread.html
grep "UBIFS: remove check for all(0xff) for empty pages"
with regards, pekon
More information about the linux-mtd
mailing list