Re: [PATCH v2 0/7] PCI: Solve two bridge window sizing issues

From: Ilpo Järvinen
Date: Fri Mar 15 2024 - 06:34:03 EST


On Thu, 28 Dec 2023, Ilpo Järvinen wrote:

> Here's a series that contains two fixes to PCI bridge window sizing
> algorithm. Together, they should enable remove & rescan cycle to work
> for a PCI bus that has PCI devices with optional resources and/or
> disparity in BAR sizes.
>
> For the second fix, I chose to expose find_empty_resource_slot() from
> kernel/resource.c because it should increase accuracy of the cannot-fit
> decision (currently that function is called find_resource()). In order
> to do that sensibly, a few improvements seemed in order to make its
> interface and name of the function sane before exposing it. Thus, the
> few extra patches on resource side.
>
> Unfortunately I don't have a reason to suspect these would help with
> the issues related to the currently ongoing resource regression
> thread [1].
>
> [1] https://lore.kernel.org/linux-pci/ZXpaNCLiDM+Kv38H@xxxxxxxxxxxxxxxxxxx/
>
> v2:
> - Add "typedef" to kerneldoc to get correct formatting
> - Use RESOURCE_SIZE_MAX instead of literal
> - Remove unnecessary checks for io{port/mem}_resource
> - Apply a few style tweaks from Andy
>
> Ilpo Järvinen (7):
> PCI: Fix resource double counting on remove & rescan
> resource: Rename find_resource() to find_empty_resource_slot()
> resource: Document find_empty_resource_slot() and resource_constraint
> resource: Use typedef for alignf callback
> resource: Handle simple alignment inside __find_empty_resource_slot()
> resource: Export find_empty_resource_slot()
> PCI: Relax bridge window tail sizing rules

I finally managed to get the group of people who reported this initially
here to go and test to confirm these did solve the issues they're seeing,
so for all the patches:

Tested-by: Lidong Wang <lidong.wang@xxxxxxxxx>

(If needed, I can send v3 with that tag).

--
i.

ps. Bjorn, I realized I pointed you earlier to v1 of this patchset, not
this v2 one. I'm sorry about that confusion (it was too far back I didn't
immediately even remember I did v2).