Re: [PATCH] ubi: Reject MLC NAND

From: Boris Brezillon
Date: Wed Mar 07 2018 - 17:41:35 EST


On Wed, 7 Mar 2018 22:43:42 +0100
Pavel Machek <pavel@xxxxxx> wrote:

> On Wed 2018-03-07 09:01:16, Richard Weinberger wrote:
> > Pavel,
> >
> > Am Mittwoch, 7. MÃrz 2018, 00:18:05 CET schrieb Pavel Machek:
> > > On Sat 2018-03-03 11:45:54, Richard Weinberger wrote:
> > > > While UBI and UBIFS seem to work at first sight with MLC NAND, you will
> > > > most likely lose all your data upon a power-cut or due to read/write
> > > > disturb.
> > > > In order to protect users from bad surprises, refuse to attach to MLC
> > > > NAND.
> > > >
> > > > Cc: stable@xxxxxxxxxxxxxxx
> > >
> > > That sounds like _really_ bad idea for stable. All it does is it
> > > removes support for hardware that somehow works.
> >
> > MLC is not supported and does not work. Full stop.
> > If someone manages to get it somehow work, either with hardware or software
> > hacks they are on their own.
> > Having it in stable is the only chance we have to get it into vendor
> > kernels.
>
> Can you show how it meets the stable kernel criteria? They are
> documented in tree. This should not be in stable.
>
> And I'd like to see changelog improved. Real reason MLC is not
> supported is upper/lower page parts on MLC. And real fix to work with
> bigger pages in UBI.

Come on! Don't you think this would have been fixed already if it was
that easy?! Have you looked at an MLC datasheet to see how paired pages
are combined? If you had you would now that paired pages are almost all
the time not contiguous, thus preventing the trick you're suggesting
here. Please document yourself before doing such presumptuous
statements (you can have a look at these slides if you want some details
about why this is not so simple [1]).

I'm definitely not saying supporting MLC NANDs in Linux is impossible,
and if you're interested in working on this topic I'd be happy to help.
But please don't block this patch without understanding what supporting
MLC NANDs implies.

[1]https://events.static.linuxfound.org/sites/events/files/slides/ubi-mlc.pdf

--
Boris Brezillon, Bootlin (formerly Free Electrons)
Embedded Linux and Kernel engineering
https://bootlin.com