VOOZH about

URL: https://www.phoronix.com/news/Xeon-6-PCIe-Workaround-Linux

⇱ Linux 6.18 Works Around An Intel Xeon 6 PCIe Performance Issue - Phoronix


👁 Phoronix

Linux 6.18 Works Around An Intel Xeon 6 PCIe Performance Issue

Written by Michael Larabel in Intel on 6 October 2025 at 02:57 PM EDT. 1 Comment
The PCI subsystem updates were merged today for the in-development Linux 6.18 kernel. The PCI changes this cycle are mostly a random assortment of different changes to the wide assortment of PCIe drivers. Standing out is a workaround for dealing with a possible PCI Express performance issue for latest-generation Xeon 6 servers.

Today's PCI pull request for Linux 6.18 notes of a Xeon 6 workaround for dealing with a PCIe performance issue:
"- Add a Xeon 6 quirk to disable Extended Tags and limit Max Read Request Size to 128B to avoid a performance issue (Ilpo Järvinen)"

The actual patch merged for Linux 6.18 goes on to explain the Xeon 6 PCIe performance issue in more detail:
"When bifurcated to x2, Xeon 6 Root Port performance is sensitive to the configuration of Extended Tags, Max Read Request Size (MRRS), and 10-Bit Tag Requester (note: there is currently no 10-Bit Tag support in the kernel). While those can be configured to the recommended values by FW, kernel may decide to overwrite the initial values.

Add a quirk that disallows enabling Extended Tags and setting MRRS larger than 128B for devices under Xeon 6 Root Ports if the Root Port is bifurcated to x2. Use the host bridge's enable_device hook to overwrite MRRS if it's set to >128B for the device to be enabled.

The earlier attempts to implement this quirk polluted PCI core code with the checks necessary to support this quirk. Using the enable_device hook keeps the quirk well-contained, away from the PCI core code."

The prior mailing list discussion on the patches went on to note some complexities with the pre-merged kernel such as the Linux kernel's "CONFIG_PCIE_BUS_PERFORMANCE" overwriting the BIOS defaults and actually leading to worse performance contrary to the "PERFORMANCE" option.

👁 Xeon 6 server


PCI subsystem maintainer Bjorn Helgaas also initially commented on the matter:
"This is kind of weird. It's apparently not an erratum in the sense that something doesn't *work*, just something for "optimized PCIe performance"?

What are we supposed to do with this? Add similar quirks for every random PCI controller? Scratching my head about what this means for the future.

What bad things happen if we *don't* do this? Is this something we could/should rely on BIOS to configure for us?"

In any event for Linux 6.18 this Intel Xeon 6 PCIe performance "fix" or "workaround" is merged.

Michael Larabel is the principal author of Phoronix.com and founded the site in 2004 with a focus on enriching the Linux hardware experience. Michael has written more than 20,000 articles covering the state of Linux hardware support, Linux performance, graphics drivers, and other topics. Michael is also the lead developer of the Phoronix Test Suite, Phoromatic, and OpenBenchmarking.org automated benchmarking software. He can be followed via Twitter, LinkedIn, or contacted via MichaelLarabel.com.