Re: [PATCH v3 0/8] PCI: Solve two bridge window sizing issues
From: Ilpo Järvinen
Date: Tue May 28 2024 - 09:11:08 EST
On Tue, 7 May 2024, Ilpo Järvinen wrote:
> Hi all,
>
> 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_resource_space() 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.
>
> v3:
Hi Bjorn,
It's a bit unclear to me what is your view about the status of this
series? I see you placed these first into some wip branches and then into
resource branch but the state of the patches in patchwork is still marked
as "New" nor have you sent any notice they'd have been "applied".
I'm thinking this from the perspective of whether I should send v4 with
those minor comments from Andy addressed or not? I could also send those
minor things as separate patches on top of the series if that's
easier/better for you.
--
i.
> - Removed "slot" wording
> - Renamed find_empty_resource_slot() -> find_resource_space()
> - find_resource_space() returns bool instead of int
> - Added patch to convert literal 20 related to bridge win minimum
> alignment to __ffs(SZ_1M)
> - Fixed kerneldoc missing "struct"
> - Tweaked prints (one dbg -> info, added new dbg one for success case)
> - Changelog tweaks
> - Take account largest >> 1 (in alignment calc)
> - Adjust to minor changes made into calculate_memsize()
> - Take logs from more recent kernel to get rid of reg 0xXX
>
> 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 (8):
> PCI: Fix resource double counting on remove & rescan
> resource: Rename find_resource() to find_resource_space()
> resource: Document find_resource_space() and resource_constraint
> resource: Use typedef for alignf callback
> resource: Handle simple alignment inside __find_resource_space()
> resource: Export find_resource_space()
> PCI: Make minimum bridge window alignment reference more obvious
> PCI: Relax bridge window tail sizing rules
>
> drivers/pci/bus.c | 10 +----
> drivers/pci/setup-bus.c | 91 +++++++++++++++++++++++++++++++++++++----
> include/linux/ioport.h | 44 ++++++++++++++++++--
> include/linux/pci.h | 5 +--
> kernel/resource.c | 68 ++++++++++++++----------------
> 5 files changed, 157 insertions(+), 61 deletions(-)
>
>