master node can not be recovered

Bityutskiy, Artem artem.bityutskiy at intel.com
Wed Nov 4 00:25:59 PST 2015


On Wed, 2015-11-04 at 10:20 +0200, Artem Bityutskiy wrote:
> Right, and I hear that a lot of bug reports and frustration comes
> from
> this. This worked with SLCs we were using when implementing UBIFS
> (particularly, Samsung OneNAND was used, it was very high-quality
> NAND). Nowadays, this needs to be changed.
> 
> UBIFS logic is this. If there is a corruption, then it must be in the
> last used NAND page. Pages after this NAND page must contain empty
> space.
> 
> A small complication, which is not important now, is that UBIFS may
> operate with multiple NAND pages, this depends on what the driver
> tells
> is the min. IO size.
> 
> No the logic behind this was that we always write data from the
> beginning of the LEB, and continue to its end. In case of a power
> cut,
> we can only get corruption in the last NAND page (or more strictly,
> min. I/O unit) where we were writing to. The next NAND page and all
> the
> NAND pages after it should be empty. The previous NAND page and all
> the
> NAND pages before it should contain valid data (CRC OK).
> 
> Pretty simple. Worked well.
> 
> So what has to be changed in this logic? Obviously, the definition of
> empty space should be changed, it seems, because obviously not every
> driver wants/can ECC-protect the empty space.
> 
> What else?

And by the way, from my point of view, if someone wants to add MLC
support, just fixing this problem is a good practical step forward. I
see a lot of discussions about MLC support, and we even have some
arguments, and the whole thing looks complex. But this is a much
smaller isolated piece of work which would contribute to the MLC
support effort, and the implementer would learn UBIFS while
implementing this, and would be a lot more confident about making UBIFS
changes. I think I can sense this attitude: oh, UBIFS is complex, let's
try to do most in UBI, it seems simpler to deal with.

-- 
Best Regards,

Artem Bityutskiy
---------------------------------------------------------------------
Intel Finland Oy
Registered Address: PL 281, 00181 Helsinki 
Business Identity Code: 0357606 - 4 
Domiciled in Helsinki 

This e-mail and any attachments may contain confidential material for
the sole use of the intended recipient(s). Any review or distribution
by others is strictly prohibited. If you are not the intended
recipient, please contact the sender and delete all copies.


More information about the linux-mtd mailing list