Re: [PATCH] mtd: add MEMREAD ioctl

From: Boris Brezillon
Date: Thu Sep 30 2021 - 02:51:43 EST


Hu Michal,

On Wed, 29 Sep 2021 21:42:24 +0200
Michał Kępień <kernel@xxxxxxxxxx> wrote:

> Miquel, Boris,
>
> Thank you both for your input.
>
> > > I do agree that a new interface is needed, but if we're adding a new
> > > entry point, let's make sure it covers all possible use cases we have
> > > now. At the very least, I think we're missing info about the maximum
> > > number of corrected bits per ECC region on the portion being read.
> > > Propagating EUCLEAN errors is nice, but it's not precise enough IMHO.
> > >
> > > I remember discussing search a new READ ioctl with Sascha Hauer a few
> > > years back, but I can't find the discussion...
>
> I think this is the thread in question:
>
> https://www.infradead.org/pipermail/linux-mtd/2016-April/thread.html#67085
>
> In fact, it looks like Boris beat me to preparing a draft patch adding a
> MEMREAD ioctl by some five years:
>
> https://www.infradead.org/pipermail/linux-mtd/2016-April/067187.html

Exactly the one I was referring to. Note that this patch still contains
the unbounded malloc which I think is worth fixing, but other than
that and the addition of ECC stats, it looks pretty similar to yours.

>
> It is apparently true that "everything that can be invented has been
> invented"... :-) I did search the web for existing mentions of a
> MEMREAD ioctl before submitting my patch, but this thread did not turn
> up in the results :(
>
> Anyway, back in 2016, Sascha hinted that he might move forward with the
> draft prepared by Boris:
>
> https://www.infradead.org/pipermail/linux-mtd/2016-April/067215.html
>
> but I cannot find any related submissions from Sascha in linux-mtd's
> Patchwork.
>
> > We also discussed a mtd_io_op some time ago, which would equivalently
> > replace mtd_oob_ops at some point, including more information such as
> > the bitflips which happened on every chunk instead of the information
> > regarding the maximum number of bitflips in one of the chunks only.
>
> Is that discussion available online? Search engines seem to be
> oblivious to that term, which makes it hard for me to get acquainted
> with that idea and/or to comment on it ;)

Not sure this has been discussed publicly, but I remember suggesting
that to Miquel a while ago to simplify the in-kernel MTD interface.

>
> > IIRC the point was to get rid of the mtd_{read,write}{,_oob} hooks and
> > structures in favor of a more robust and complete set of operations.
>
> That sounds like a major overhaul, right?
>
> I guess the big question from my perspective is: should I revive Boris'
> original effort on the MEMREAD ioctl (which returns more detailed
> bitflip stats in the structure passed by user space) or would that be a
> waste of time because the subsystem will be switched over wholesale to a
> new way of doing I/O (mtd_io_op) in the foreseeable future and therefore
> exposing yet another ioctl to user space today would be frowned upon?
>

That's not my call to make, but I think those 2 things are orthogonal
and can be addressed separately.

Regards,

Boris