UBIFS: recovery of master node

Andrea Scian rnd4 at dave-tech.it
Fri Jul 17 01:04:27 PDT 2015


Dear Richard,

Il 17/07/2015 09:24, Richard Weinberger ha scritto:
> Am 17.07.2015 um 08:58 schrieb Andrea Scian:
>> Il 16/07/2015 17:29, Richard Weinberger ha scritto:
>>> Andrea,
>>>
>>> On Thu, Jul 16, 2015 at 3:22 PM, Andrea Scian <rnd4 at dave-tech.it> wrote:
>>>>
>>>> If I bypass that check too, I can mount UBIFS and everything inside the FS
>>>> is there but, of course, I'm sure I'm doing something that may be wrong..
>>>>
>>>> WDYT?
>>>
>>> So, you're facing bitflips on empty space?
>>
>> Another UBI/UBIFS "implementation" question: are there some other places,
 >> apart from get_master_node(),
 >> where UBIFS check empty space corruption and fails
 >> badly if something wrong?
>
> Having non-corrupted empty space is a fundamental requirement of UBIFS.
> If you patch it out you'll hurt UBIFS's ability to recover from a power cut.
> Someone tried to do so already.

Thanks, this are the internals of UBIFS I'm not aware of, and for this 
I'm asking the experts :-)

> I know, cheap modern NAND, especially MLC seems to show bitflips also on empty pages.
> Not all NAND controllers can deal with that and will just return an uncorrectable ECC error
> upon reading.

Is the any NAND controller able to do so? ;-)

> IMHO the right place to deal with that is MTD core.

I agree with you, however I'm handling it at lowest level, inside the 
NAND controller.
I know that having this code into the MTD NAND layer will allow us to 
have a "controller independent" implementation, however MTD see only a 
bigger picture: for example MTD sees only a NAND page (4k in my case) 
while the NAND controller usually apply ECC on smaller (1k in my case) 
section and here we have the right threshold to apply (ecc_strength or 
something a bit smaller if you prefer).

Finding the right threshold is, IMHO, the real trick.

> Please search the archives, Brian posted some patches some time ago.

Thanks for point this out.
I've found some patches from one year ago from Huang Shijie (@freescale) 
which looks very close to mine. However I cannot see any inclusion in 
the mainline.

I'll continue my research.

Thanks and kind regards,

-- 

Andrea SCIAN

DAVE Embedded Systems




More information about the linux-mtd mailing list