Applying patches to mainline (Was: Re: [PATCH v2 0/7] efi_loader: Add support for logging to a buffer)

Simon Glass sjg at chromium.org
Thu Dec 12 15:09:12 CET 2024


Hi Tom,

On Fri, 6 Dec 2024 at 17:59, Tom Rini <trini at konsulko.com> wrote:
>
> On Fri, Dec 06, 2024 at 04:43:47PM -0700, Simon Glass wrote:
> > Hi Tom,
> >
> > On Fri, 6 Dec 2024 at 13:12, Tom Rini <trini at konsulko.com> wrote:
> > >
> > > On Fri, Dec 06, 2024 at 12:19:38PM -0700, Simon Glass wrote:
> > > > Hi Tom,
> > > >
> > > > On Wed, 4 Dec 2024 at 09:27, Tom Rini <trini at konsulko.com> wrote:
> > > > >
> > > > > On Wed, Dec 04, 2024 at 08:13:04AM -0700, Simon Glass wrote:
> > > > > > Hi Tom,
> > > > > >
> > > > > > On Tue, 3 Dec 2024 at 18:29, Tom Rini <trini at konsulko.com> wrote:
> > > > > > >
> > > > > > > On Mon, Dec 02, 2024 at 05:21:05PM -0700, Simon Glass wrote:
> > > > > > >
> > > > > > > > From my side I'd like to change the conversation a little, to how to
> > > > > > > > land code, rather than why we should bother. "Code needs to land"
> > > > > > > > should be the motto. If someone has taken the time to create
> > > > > > > > something, our bias should be towards getting it in, with sufficient
> > > > > > > > changes to make it fit the project. There are cases where something is
> > > > > > > > just a bad idea, or should be done another way, but for people working
> > > > > > > > on major features or changes, biasing towards not landing the code is
> > > > > > > > just going to make them go elsewhere.
> > > > > > >
> > > > > > > This is the wrong approach I believe. The goal has always been and
> > > > > > > continues to be to have reviewed (whenever possible, our developer
> > > > > > > community is small) incremental change over time.
> > > > > >
> > > > > > Yes, I agree with that, but it isn't what I said.
> > > > >
> > > > > I don't know how else to interpret "Code needs to land". I'm not sure
> > > > > what reviewed patches we have that are outstanding, but also not fairly
> > > > > new. We do have patches outstanding, in general. Much of those fall in
> > > > > to the categories of:
> > > > > - Custodian is active, but also very busy (virtually everyone is a
> > > > >   volunteer so I have a hard time getting forceful with people that have
> > > > >   a large queue).
> > > > > - Custodian isn't active / no direct custodian and the code hasn't been
> > > > >   reviewed by anyone else.
> > > >
> > > > Here's my intention with 'code needs to land': to bias against people
> > > > saying "I don't like this; I don't care about your use case; please go
> > > > away"
> > >
> > > To me that applies an arbitrary nature to patches being rejected, which
> > > I do not see as being the case.
> > >
> > > > > > > Just because something
> > > > > > > has been posted a number of times does not mean it's ready to be merged.
> > > > > >
> > > > > > I didn't say that either.
> > > > >
> > > > > It's an impression you give however when you repost a series less than a
> > > > > day after last posting, without addressing all of the feedback.
> > > >
> > > > I'm going to ignore that comment as it is not helpful and
> > > > mischaracterises my contributions.
> > >
> > > I stand by it, and will let others judge if that's the impression they
> > > have, or not.
> >
> > I'll put the relevant threads at [1], ditto.
> >
> > >
> > > > > > > Your challenge today is that on patchwork you have over 150 patches
> > > > > > > covering a wide variety of topics and of which many series have
> > > > > > > technically-merited feedback that needs to be addressed in a technical
> > > > > > > manner.
> > > > > >
> > > > > > By my count I have about 10 series in progress, with a small number of
> > > > > > patches (< 10?) with pending feedback
> > > > >
> > > > > I'm not sure about that less than 10 number, in part because it's hard
> > > > > to keep track of which feedback was applied, and which not. And part
> > > > > because some of those series are places where I told you I'm unsure
> > > > > about the core concept but you asked and I'm giving you leeway to show
> > > > > me the end result.
> > > >
> > > > OK
> > > >
> > > > >
> > > > > > that isn't effectively just a
> > > > > > NAK.
> > > > >
> > > > > To be clear, "just a NAK" isn't the whole story. Those NAKs come with
> > > > > technical rationales and requests. But maybe they're just lost in the
> > > > > volume of emails you have in some cases. I know for example I mentioned
> > > > > a few times and places that we have tests today for booting the OS, when
> > > > > you mention that we need to add a test for booting the OS. We need to
> > > > > expand that test, yes.
> > > >
> > > > If you look at the OF_BLOBLIST thing, it is basically a NAK. I don't
> > > > see any other way to interpret it,. So several boards in my lab have
> > > > been broken for a year.
> > >
> > > To be clear, you want to revert:
> > > commit 70fe23859437ffe4efe0793423937d8b78ebf9d6
> > > Author:     Simon Glass <sjg at chromium.org>
> > > AuthorDate: Wed Jan 3 18:49:19 2024 -0700
> > > Commit:     Simon Glass <sjg at chromium.org>
> > > CommitDate: Sun Jan 7 13:45:07 2024 -0700
> > >
> > >     fdt: Allow the devicetree to come from a bloblist
> > >
> > >     Standard passage provides for a bloblist to be passed from one firmware
> > >     phase to the next. That can be used to pass the devicetree along as well.
> > >     Add an option to support this.
> > >
> > >     Tests for this will be added as part of the Universal Payload work.
> > >
> > >     Signed-off-by: Simon Glass <sjg at chromium.org>
> > >     Reviewed-by: Tom Rini <trini at konsulko.com>
> > >     Reviewed-by: Ilias Apalodimas <ilias.apalodimas at linaro.org>
> > >
> > > Which means that you did not test your changes on your hardware at the
> > > time? And wish to (seemingly) replace that with an earlier version of
> > > the patch which was objected to on technical grounds at the time.
> > > Without explaining why the current code does not function on these
> > > platforms, only that it does not, for entirely unclear reasons.
> >
> > It never worked on my board, though. I spent 6 revisions trying to
> > explain that. After number 6 [2] you got in touch and said that I
> > needed to rework it, which I dutifully did, in version 7 [3]. I did
> > that purely to unblock Raymond's series. I even put that in the patch:
> >
> > "The discussion on this was not resolved and is now important due to the
> > bloblist series from Raymond. So I am sending it again since I believe
> > this is a better starting point than building on OF_BOARD"
> >
> > Are you now saying I should have refused and argued for another few
> > revisions? Patience does have its limits.
>
> I'm saying that I assumed what you pushed functioned on your hardware,
> which is why I'm surprised now that it doesn't.

How can you possibly assume that, or be 'surprised' about that?! I
repeatedly said that the solution was no good for me and I was very
clear that I only sent that patch because you insisted on it. You sent
a 'thank you' afterwards, which rang pretty hollow after so much
effort and still having broken boards.

>From what I vaguely recall, in a discussion that went on till the cows
came home, it was tied up with U-Boot not being allowed to have its
own devicetree. Another vague recollection was that I was stupid and I
didn't understand...

> I'll look through all of
> the links later, but I think you still haven't explained _why_ this
> solution doesn't function on your platforms (now or last year) and what
> your platforms need (as in, can't change) / want (you would need to
> rework some other part of the firmware stack to get them in agreement on
> that platform).

Actually I've explained that many, many times. They use bloblist but
not for passing the FDT. This strange insistence that the bloblist
must carry the FDT is what caused all these problems. I need a
platform to be able to boot TPL, have a bloblist set up in SPL, pass
it to U-Boot proper, all without having an FDT in it.

>
> > > So I do not think I've arbitrarily nak'd the revert you posted, I've
> > > been asking you to explain why the code doesn't work. And I still don't
> > > have an answer as to why after at run time we don't find a valid
> > > bloblist here the fall-back use cases aren't functioning. To me that
> > > seems like the bug to investigate and explain. Reverting code to find
> > > when functionality broke is great, I do it all the time. Saying we need
> > > to revert because something broke *without* saying why it broke is a
> > > problem.
> > >
> > > > > > It isn't a particularly large number, if you add up the patches I
> > > > > > do in each cycle. It is in the nature of development and code review
> > > > > > that things are often not right the first time, or someone else has
> > > > > > another perspective, so I cannot see how this can be reduced.
> > > > >
> > > > > The easy way to reduce it would be to go from 10 series in progress to 1
> > > > > series in progress, and finish that before picking up series number 2,
> > > > > and so on. And then in the future, stop when you have more than 2 or 3
> > > > > in progress at once.
> > > >
> > > > That's obviously not practical for the amount I am contributing and
> > > > the length of time it takes us to get things in. I hope it isn't a
> > > > serious suggestion!
> > >
> > > It's extremely serious. For example
> > > https://patchwork.ozlabs.org/project/uboot/list/?series=435516&state=*
> > > is a 46 part patch series that touches 3 or 4 different areas and the
> > > only type of review that's feasible is "Does this cause the binary to
> > > grow too much? Or in unexpected ways?" And that sets aside that I
> > > believe I did ask you to rework "bootm: Allow building bootm.c without
> > > CONFIG_SYS_BOOTM_LEN" to refactor things so that SYS_BOOTM_LEN is always
> > > defined. That's not even a hard change, I say as someone that had to do
> > > that as part of Kconfig migration of oddly (ab)used symbol names.
> > >
> > > But in this case, your series that touch areas of code actively
> > > maintained by other people is even more relevant. Whereas areas without
> > > other active developers, or where you are the main developer, I can find
> > > some smaller limits on what must be reviewed all of your *EFI* has other
> > > active developers on it. Who are providing technical feedback, not
> > > arbitrary or stylistic feedback. Please be explicit about what you are
> > > suggesting in this case, so I do not mischaracterize your intention.
> > >
> > > > > But really, it feels like "Code needs to land" is another way of saying
> > > > > "Just a NAK should be ignored".
> > > >
> > > > Yes, a bias more towards that would be more healthy IMO. A NAK needs
> > > > to come with a full understanding of the use case, an alternative way
> > > > to meet the use case, once that doesn't involve boiling the Pacific
> > > > Ocean.
> > >
> > > As it stands, I do not like to, but sometimes feel I *have*to* break one
> > > board to unbreak another board and keep reminding both parties to
> > > resolve the issue so no board is broken. There has been, since I have
> > > taken over the lead of the project, at least once where I have
> > > over-ruled the relevant custodian and that has resulted in the custodian
> > > leaving. I both feel that was the right technical call, and regret it
> > > came to that, still. I do not want to adopt a more broad use of that
> > > policy. The default for absence of agreement must be to try again.
> >
> > I see that Peter sent a few indignant emails. You can't win.
>
> I assume this is about the LED series, and I further assume you forgot /
> missed where he explained that removing the legacy code is a functional
> user visible usability regression on the pinephone.

It seems you are saying that we can break my boards completely, but
Peter must have his flashing LEDs?

Regards,
Simon


More information about the U-Boot mailing list