[PATCH v7 0/2] PCI: Configure Root Port MPS during host probing
Hans Zhang
18255117159 at 163.com
Sun Jan 18 05:26:45 PST 2026
On 2025/12/31 10:58, Ricardo Pardini wrote:
> On 27/11/2025 18:09, Hans Zhang wrote:
>> Current PCIe initialization exhibits a key optimization gap: Root Ports
>> may operate with non-optimal Maximum Payload Size (MPS) settings. While
>> downstream device configuration is handled during bus enumeration, Root
>> Port MPS values inherited from firmware or hardware defaults often fail
>> to utilize the full capabilities supported by controller hardware. This
>> results in suboptimal data transfer efficiency throughout the PCIe
>> hierarchy.
>>
>> This patch series addresses this by:
>>
>> 1. Core PCI enhancement (Patch 1):
>> - Proactively configures Root Port MPS during host controller probing
>> - Sets initial MPS to hardware maximum (128 << dev->pcie_mpss)
>> - Conditional on PCIe bus tuning being enabled (PCIE_BUS_TUNE_OFF unset)
>> and not in PCIE_BUS_PEER2PEER mode (which requires default 128 bytes)
>> - Maintains backward compatibility via PCIE_BUS_TUNE_OFF check
>> - Preserves standard MPS negotiation during downstream enumeration
>>
>> 2. Driver cleanup (Patch 2):
>> - Removes redundant MPS configuration from Meson PCIe controller driver
>> - Functionality is now centralized in PCI core
>> - Simplifies driver maintenance long-term
>>
>> ---
>> Changes in v7:
>> - Exclude PCIE_BUS_PEER2PEER mode from Root Port MPS configuration
>> - Remove redundant check for upstream bridge (Root Ports don't have one)
>> - Improve commit message and code comments as per Bjorn.
> Hi Hans,
>
> I've tested on an Odroid-HC4 with a SATA SSD (via an ASM1061) by
> applying your v7 on v6.19-rc3 + Bjorn's 20251103221930.1831376-1-
> helgaas at kernel.org ("PCI: meson: Remove meson_pcie_link_up() timeout,
> message, speed check" which is required to get the meson PCIe to work at
> all since 6.18). With that setup I get:
>
> # hdparm --direct -t /dev/sda
> Timing O_DIRECT disk reads: 832 MB in 3.00 seconds = 277.33 MB/sec
>
> I've an identical machine, with a similar disk (even slightly faster, on
> paper), running plain 6.12.y and there I get:
>
> # hdparm --direct -t /dev/sda
> Timing O_DIRECT disk reads: 764 MB in 3.00 seconds = 254.26 MB/sec
>
> I repeated those a few times, not very scientific, I know; but anyway:
>
> Tested-by: Ricardo Pardini <ricardo at pardini.net> # on Odroid-HC4
>
> I've also feedback from another user running with this series with
> success on a different meson PCIe machine, will ask them to TB as well;
> they had reported a significant drop in performance since v6.18 without
> this.
Hi,
Thank you very much for your test. Let's wait for Bjorn's reply.
Best regards,
Hans
>
> Thanks,
> Ricardo
More information about the linux-arm-kernel
mailing list