UBI/UBIFS: dealing with MLC's paired pages

Boris Brezillon boris.brezillon at free-electrons.com
Fri Oct 30 01:21:20 PDT 2015


On Fri, 30 Oct 2015 09:15:21 +0100
Boris Brezillon <boris.brezillon at free-electrons.com> wrote:

> 
> 2/ skipping pages on demand is not as easy as only writing on lower
> pages of each pair. As you might know, when skipping pages to secure
> your data, you'll also have to skip some lower pages so that you end up
> with an offset to a memory region that can be contiguously written to,
> and when you skip those lower pages, you have to write on it, because
> NAND chips require that the lower page of each pair be programmed
> before the higher one (ignoring this will just render some pages
> unreliable).
> 
> 3/ UBIFS is really picky when it comes to corrupted nodes detection,
> and there are a few cases where it refuses to mount the FS when a
> corrupted node is detected. One of this case is when the corrupted
> page (filled with one or several nodes) is filled with non-ff data,

I meant, "Once of this case is when the corrupted page is followed by
a page filled with non-ff data" 

> which is likely to happen with MLC NANDs (paired pages are not
> contiguous). We discussed about relaxing this policy a few weeks ago,
> but what should we do when such a corruption is detected? Drop all
> nodes with a sequence higher or equal to the last valid node on the
> LEB?
> Note that with the consolidation-GC approach we don't have this
> problem because the consolidate LEB is added to journal after it has
> been completely filled with data, and marked as full (->free = 0) so
> that nobody can reclaim it to write data on it.

-- 
Boris Brezillon, Free Electrons
Embedded Linux and Kernel engineering
http://free-electrons.com



More information about the linux-mtd mailing list