Re: [PATCH v12 0/4] PCI: Patch series to improve Thunderbolt enumeration

From: Nicholas Johnson
Date: Sat Dec 21 2019 - 00:49:19 EST


On Fri, Dec 20, 2019 at 08:38:56AM -0600, Bjorn Helgaas wrote:
> On Fri, Dec 20, 2019 at 08:50:14AM +0000, Nicholas Johnson wrote:
> > On Thu, Dec 19, 2019 at 06:03:58PM -0600, Bjorn Helgaas wrote:
> > > On Wed, Dec 18, 2019 at 12:54:25AM +0000, Nicholas Johnson wrote:
> > > > On Tue, Dec 17, 2019 at 09:12:48AM -0600, Bjorn Helgaas wrote:
> > > > > On Mon, Dec 09, 2019 at 12:59:29PM +0000, Nicholas Johnson wrote:
>
> > > > > > Nicholas Johnson (4):
> > > > > > PCI: Consider alignment of hot-added bridges when distributing
> > > > > > available resources
> > Prevent failure to assign hot-added Thunderbolt PCI BARs with alignment >1M
> >
> > > > > > PCI: In extend_bridge_window() change available to new_size
> > Change variable name in extend_bridge_window() to better reflect its
> > purpose
> >
> > ^ I would have preferred this not be its own commit. Is it too late to
> > squash it back together with patch 3/4?
>
> Not too late; it's trivial to squash it. I consider these branches to
> be drafts, subject to revision until I ask Linus to pull them.
>
> But ... why? In general, the smaller the patch the better.
Now that I had to justify why were are putting it in, it does not fix a
bug or have any effect on the end user. But it seems I was mistaken in
that I have to write reasons for each patch. It seems like it is one for
the whole series.

>
> > > Basically, I'm not comfortable asking Linus to pull material unless I
> > > can explain what the benefit is. I'm still struggling to articulate
> > > the benefit in this case. I think it makes hotplug work better in
> > > some cases where we need more alignment than we currently have, but
> > > that's pretty sketchy.
> >
> > In my opinion, fixing failure to assign is a clear reason to merge,
> > especially when the failure will result in a user wondering why the
> > device they plugged in does not work.
>
> Sure. But there's nothing specific in the commit logs about what the
> problem is and how these fix it.
>
> For example, I think the first patch ("PCI: Consider alignment of
> hot-added bridges when distributing available resources") is something
> to do with increasing the alignment of bridge windows to account for
> descendants that require greater alignment.
>
> But the log says "Rewrite pci_bus_distribute_available_resources to
> better handle bridges with different resource alignment requirements."
> That says nothing about what the problem was or how you fix it.
When I first started the patches a year ago, it was all about my
Thunderbolt add-in cards. Since then, I have realised that although that
is the motivation, there is nothing in this code specific to
Thunderbolt. Hence, I tried to write the logs in terms of what it means
for PCI in general, and tried to leave mentions of Thunderbolt out. If I
recall correctly, the fact that there is nothing specific to Thunderbolt
here has been brought up by reviewers.

>
> Ideally that patch would very specifically change *alignment* details.
> It currently also contains a bunch of other changes (interface change,
> removing "b" in favor "dev->subordinate", etc). These make the patch
> bigger and harder to understand and justify. Some of these lead up to
> the alignment change but possibly could be split to separate patches.
I tried to split the first patch up, but it got very messy, very
quickly. I tried to do the interface change first, but I found variable
names to clash when making partial changes. The overall number of lines
of diff would have been much greater to achieve the same thing, and each
patch was not a whole lot smaller.

I can re-submit with changed commit logs if you wish, to mention the
Thunderbolt problems.

Patches 2, 3 and 4 can be applied first if that helps.

I can try to split 1 up more, but it is going to be a lot of work and
I am not convinced you will like the results much more.

>
> Bjorn

Nicholas