Re: [greybus-dev] [PATCH v4] staging: greybus: Convert uart.c from IDR to XArray

From: Fabio M. De Francesco
Date: Tue Aug 31 2021 - 07:50:15 EST


On Tuesday, August 31, 2021 10:07:38 AM CEST Johan Hovold wrote:
> On Mon, Aug 30, 2021 at 08:20:25AM -0500, Alex Elder wrote:
>
> > I have been offering review feedback on this patch for three reasons:
> >
> > - First, because I think the intended change does no real harm to the
> > Greybus code, and in a small way actually simplifies it.
>
> You leave out that we've already seen three versions of the patch that
> broke things in various ways and that there was still work to be done
> with respect to the commit message and verifying the locking. That's all
> real costs that someone needs to bear.
>
> > - Because I wanted to encourage Fabio's efforts to be part of the
> > Linux contributor community.

I really appreciated it, thank you so much Alex.

> Helping new contributers that for example have run into a bug or need
> some assistance adding a new feature that they themselves have use for
> is one thing.
>
> I'm not so sure we're helping either newcomers or Linux long term by
> inventing work for an already strained community however.
>
> [ This is more of a general comment and of course in no way a critique
> against Fabio or a claim that the XArray conversions are pointless. ]
>
> > - Because I suspected that Matthew's long-term intention was to
> > replace IDR/IDA use with XArray, so this would represent an early
> > conversion.

I am pretty sure that Mathew desires that people convert as much as possible
code from IDR to XArray. You had his confirmation in this thread along with
the link to the old message I have provided. However you and Alex are the
maintainers, not Matthew. I must respect your POV.

> That could be a valid motivation for the change indeed (since the
> efficiency arguments are irrelevant in this case), but I could not find
> any indications that there has been an agreement to deprecate the
> current interfaces.
>
> Last time around I think there was even push-back to convert IDR/IDA to
> use XArray internally instead (but I may misremember).
>
> > The Greybus code is generally good, but that doesn't mean it can't
> > evolve. It gets very little patch traffic, so I don't consider small
> > changes like this "useless churn." The Greybus code is held up as an
> > example of Linux kernel code that can be safely modified, and I think
> > it's actively promoted as a possible source of new developer tasks
> > (e.g. for Outreachy).
>
> Since most people can't really test their changes to Greybus perhaps it
> isn't the best example of code that can be safely modified. But yeah,
> parts of it are still in staging and, yes, staging has been promoted as
> place were some churn is accepted.
>
> Johan

I cannot test my changes to Greybus, but I think that trivial changes are
just required to build. To stay on the safe side I had left those
mutex_lock() around xa_load(). I wasn't sure about it, but since the original
code had the Mutexes I thought it wouldn't hurt to leave them there.

As it was conceived it was a "trivial" patch that didn't" need any tests,
IMO. Greg has said, more than once, that "trivial" patches are "more than
welcome" in drivers/staging, so I took his words applicable to staging/
greybus too.

Until the locks were there, my patch was indeed a "trivial" patch. I know the
XArray API enough to do this task because I've already worked on unisys/
visorhba and you may bet I had not the hardware to test that patch.
Furthermore, it was much more complex work than what I've done in staging/
greybus. After some time, due to the lack of responses from Unisys
maintainers he took the responsibility to apply my patch. He knew that it was
not tested, so he wrote "let's see what it breaks :)".

I'm very sorry to bother you. I don't really know in the deep how Greybus
works and I don't know how to write drivers because at the moment I prefer
to spend my (very limited) time to learn core subsystems (process management
and the schedulers above all). But while learning, I also want to give back
something to the kernel and its Community. I think that little works on
staging are the best way to accomplish this goal.

I was wrong in assuming that trivial patches to Greybus are welcome as they
are for other drivers.

Best regards,

Fabio