On Wed, Sep 23, 2020 at 11:36:00PM +0200, Ian Kumlien wrote: > https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=66ff14e59e8a > > "7d715a6c1ae5 ("PCI: add PCI Express ASPM support") added the ability for > Linux to enable ASPM, but for some undocumented reason, it didn't enable > ASPM on links where the downstream component is a PCIe-to-PCI/PCI-X Bridge. > > Remove this exclusion so we can enable ASPM on these links." > ... > And all of this worked before the commit above. OK, really sorry, I got myself totally confused here, and I need to start over from scratch. Correct me when I go off the rails. You're running 5.8.11+, and you get ~40 Mbit/s on the Intel I211 NIC. Reverting 66ff14e59e8a ("PCI/ASPM: Allow ASPM on links to PCIe-to-PCI/PCI-X Bridges") gets your bandwidth up to the 900+ Mbit/s you expect. 66ff14e59e8a only makes a difference if you have a PCIe-to-PCI/PCI-X Bridge (PCI_EXP_TYPE_PCI_BRIDGE) in your system. But from your lspci and pci=earlydump output, I don't see any of those. The only bridges I see are: [ 0.810346] pci 0000:00:01.2: [1022:1483] type 01 Root Port to [bus 01-07] [ 0.810587] pci 0000:00:03.1: [1022:1483] type 01 Root Port to [bus 08] [ 0.810587] pci 0000:00:03.2: [1022:1483] type 01 Root Port to [bus 09] [ 0.810837] pci 0000:00:07.1: [1022:1484] type 01 Root Port to [bus 0a] [ 0.811587] pci 0000:00:08.1: [1022:1484] type 01 Root Port to [bus 0b] [ 0.812586] pci 0000:01:00.0: [1022:57ad] type 01 Upstream Port to [bus 02-07] [ 0.812629] pci 0000:02:03.0: [1022:57a3] type 01 Downstream Port to [bus 03] [ 0.813584] pci 0000:02:04.0: [1022:57a3] type 01 Downstream Port to [bus 04] [ 0.814584] pci 0000:02:08.0: [1022:57a4] type 01 Downstream Port to [bus 05] [ 0.815584] pci 0000:02:09.0: [1022:57a4] type 01 Downstream Port to [bus 06] [ 0.815584] pci 0000:02:0a.0: [1022:57a4] type 01 Downstream Port to [bus 07] So I'm lost right off the bat. You have no PCI_EXP_TYPE_PCI_BRIDGE device, so how can 66ff14e59e8a make a difference for you? Can you add a printk there, e.g., list_for_each_entry(child, &linkbus->devices, bus_list) { if (pci_pcie_type(child) == PCI_EXP_TYPE_PCI_BRIDGE) { + pci_info(child, "PCIe-to-PCI bridge, disabling ASPM\n"); link->aspm_disable = ASPM_STATE_ALL; break; } }