I compared dmesg outputs from kernel 6.1 and 6.13. I’m seeing a limited PCIe bandwidth with 6.13 for some reason. Is this the cause instead of the pnp errors? (I see the BARs get assigned regardless of what pnp spits out)
6.1:
abijay@fedora:~$ sudo journalctl -b 0 -g "pci 0000:01"
Mar 28 13:26:19 fedora kernel: pci 0000:01:00.0: [10de:24dd] type 00 class 0x030000
Mar 28 13:26:19 fedora kernel: pci 0000:01:00.0: reg 0x10: [mem 0x00000000-0x00ffffff]
Mar 28 13:26:19 fedora kernel: pci 0000:01:00.0: reg 0x14: [mem 0x00000000-0x1ffffffff 64bit pref]
Mar 28 13:26:19 fedora kernel: pci 0000:01:00.0: reg 0x1c: [mem 0x00000000-0x01ffffff 64bit pref]
Mar 28 13:26:19 fedora kernel: pci 0000:01:00.0: reg 0x24: [io 0x0000-0x007f]
Mar 28 13:26:19 fedora kernel: pci 0000:01:00.0: reg 0x30: [mem 0x00000000-0x0007ffff pref]
Mar 28 13:26:19 fedora kernel: pci 0000:01:00.0: Max Payload Size set to 256 (was 128, max 256)
Mar 28 13:26:19 fedora kernel: pci 0000:01:00.0: PME# supported from D0 D3hot
Mar 28 13:26:19 fedora kernel: pci 0000:01:00.0: 126.024 Gb/s available PCIe bandwidth, limited by 16.0 GT/s PCIe x8 link at 0000:00:01.0 (capable of 252.048 Gb/s with 16.0 GT/s PCIe x16 link)
Mar 28 13:26:19 fedora kernel: pci 0000:01:00.0: Adding to iommu group 19
Mar 28 13:26:19 fedora kernel: pci 0000:01:00.0: vgaarb: bridge control possible
Mar 28 13:26:19 fedora kernel: pci 0000:01:00.0: vgaarb: VGA device added: decodes=io+mem,owns=none,locks=none
Mar 28 13:26:19 fedora kernel: pci 0000:01:00.1: [10de:228b] type 00 class 0x040300
Mar 28 13:26:19 fedora kernel: pci 0000:01:00.1: reg 0x10: [mem 0x00000000-0x00003fff]
Mar 28 13:26:19 fedora kernel: pci 0000:01:00.1: Max Payload Size set to 256 (was 128, max 256)
Mar 28 13:26:19 fedora kernel: pci 0000:01:00.1: Adding to iommu group 19
Mar 28 13:26:19 fedora kernel: pci 0000:01:00.0: BAR 1: assigned [mem 0x6000000000-0x61ffffffff 64bit pref]
Mar 28 13:26:19 fedora kernel: pci 0000:01:00.0: BAR 3: assigned [mem 0x6200000000-0x6201ffffff 64bit pref]
Mar 28 13:26:19 fedora kernel: pci 0000:01:00.0: BAR 0: assigned [mem 0x60000000-0x60ffffff]
Mar 28 13:26:19 fedora kernel: pci 0000:01:00.0: BAR 6: assigned [mem 0x61000000-0x6107ffff pref]
Mar 28 13:26:19 fedora kernel: pci 0000:01:00.1: BAR 0: assigned [mem 0x61080000-0x61083fff]
Mar 28 13:26:19 fedora kernel: pci 0000:01:00.0: BAR 5: assigned [io 0x5000-0x507f]
Mar 28 13:26:19 fedora kernel: pci 0000:01:00.1: extending delay after power-on from D3hot to 20 msec
Mar 28 13:26:19 fedora kernel: pci 0000:01:00.1: D0 power state depends on 0000:01:00.0
Mar 28 15:50:29 fedora sudo[20814]: abijay : TTY=pts/4 ; PWD=/home/abijay ; USER=root ; COMMAND=/usr/bin/journalctl -b - -g 'pci 0000:01'
Mar 28 15:50:37 fedora sudo[20848]: abijay : TTY=pts/4 ; PWD=/home/abijay ; USER=root ; COMMAND=/usr/bin/journalctl -b 0 -g 'pci 0000:01'
Mar 28 15:52:14 fedora sudo[20886]: abijay : TTY=pts/4 ; PWD=/home/abijay ; USER=root ; COMMAND=/usr/bin/journalctl -b 0 -g 'pci 0000:01'
Mar 28 15:52:24 fedora sudo[20917]: abijay : TTY=pts/4 ; PWD=/home/abijay ; USER=root ; COMMAND=/usr/bin/journalctl -b -3 -g 'pci 0000:01'
Mar 28 15:54:00 fedora sudo[21388]: abijay : TTY=pts/4 ; PWD=/home/abijay ; USER=root ; COMMAND=/usr/bin/journalctl -b 0 -g 'pci 0000:01'
6.13:
abijay@fedora:~$ sudo journalctl -b -3 -g "pci 0000:01"
Mar 28 12:15:04 fedora kernel: pci 0000:01:00.0: [10de:24dd] type 00 class 0x030000 PCIe Legacy Endpoint
Mar 28 12:15:04 fedora kernel: pci 0000:01:00.0: BAR 0 [mem 0x00000000-0x00ffffff]
Mar 28 12:15:04 fedora kernel: pci 0000:01:00.0: BAR 1 [mem 0x00000000-0x0fffffff 64bit pref]
Mar 28 12:15:04 fedora kernel: pci 0000:01:00.0: BAR 3 [mem 0x00000000-0x01ffffff 64bit pref]
Mar 28 12:15:04 fedora kernel: pci 0000:01:00.0: BAR 5 [io 0x0000-0x007f]
Mar 28 12:15:04 fedora kernel: pci 0000:01:00.0: ROM [mem 0x00000000-0x0007ffff pref]
Mar 28 12:15:04 fedora kernel: pci 0000:01:00.0: Max Payload Size set to 256 (was 128, max 256)
Mar 28 12:15:04 fedora kernel: pci 0000:01:00.0: PME# supported from D0 D3hot
Mar 28 12:15:04 fedora kernel: pci 0000:01:00.0: 16.000 Gb/s available PCIe bandwidth, limited by 2.5 GT/s PCIe x8 link at 0000:00:01.0 (capable of 252.048 Gb/s with 16.0 GT/s PCIe x16 link)
Mar 28 12:15:04 fedora kernel: pci 0000:01:00.1: [10de:228b] type 00 class 0x040300 PCIe Endpoint
Mar 28 12:15:04 fedora kernel: pci 0000:01:00.1: BAR 0 [mem 0x00000000-0x00003fff]
Mar 28 12:15:04 fedora kernel: pci 0000:01:00.1: Max Payload Size set to 256 (was 128, max 256)
Mar 28 12:15:04 fedora kernel: pci 0000:01:00.0: vgaarb: bridge control possible
Mar 28 12:15:04 fedora kernel: pci 0000:01:00.0: vgaarb: VGA device added: decodes=io+mem,owns=none,locks=none
Mar 28 12:15:04 fedora kernel: pci 0000:01:00.0: BAR 1 [mem 0x6000000000-0x600fffffff 64bit pref]: assigned
Mar 28 12:15:04 fedora kernel: pci 0000:01:00.0: BAR 3 [mem 0x6010000000-0x6011ffffff 64bit pref]: assigned
Mar 28 12:15:04 fedora kernel: pci 0000:01:00.0: BAR 0 [mem 0x60000000-0x60ffffff]: assigned
Mar 28 12:15:04 fedora kernel: pci 0000:01:00.0: ROM [mem 0x61000000-0x6107ffff pref]: assigned
Mar 28 12:15:04 fedora kernel: pci 0000:01:00.1: BAR 0 [mem 0x61080000-0x61083fff]: assigned
Mar 28 12:15:04 fedora kernel: pci 0000:01:00.0: BAR 5 [io 0x5000-0x507f]: assigned
Mar 28 12:15:04 fedora kernel: pci 0000:01:00.1: extending delay after power-on from D3hot to 20 msec
Mar 28 12:15:04 fedora kernel: pci 0000:01:00.1: D0 power state depends on 0000:01:00.0
Mar 28 12:15:04 fedora kernel: pci 0000:01:00.0: Adding to iommu group 16
Mar 28 12:15:04 fedora kernel: pci 0000:01:00.1: Adding to iommu group 16
[ 0.327394] pci 0000:01:00.0: 16.000 Gb/s available PCIe bandwidth, limited by 2.5 GT/s PCIe x8 link at 0000:00:01.0 (capable of 126.024 Gb/s with 16.0 GT/s PCIe x8 link)
IIRC this is part of Nvidia’s power-saving features which downgrades the PCIe link to Gen1 x8 to save power and brings it back up to full speed when the GPU is active.
Not that I really know anything about how exactly the kernel works, but if this is happening on different hardware and exclusively with newer kernel versions, then that’s the only possibility left right?
Can someone familiar with the Linux kernel or with the Fedora kernel team please confirm?
[ 0.615983] pci 0000:04:00.0: 8.000 Gb/s available PCIe bandwidth, limited by 2.5 GT/s PCIe x4 link at 0000:03:00.0 (capable of 126.016 Gb/s with 8.0 GT/s PCIe x16 link)
[ 0.618069] pci 0000:07:00.0: 32.000 Gb/s available PCIe bandwidth, limited by 2.5 GT/s PCIe x16 link at 0000:00:03.1 (capable of 126.016 Gb/s with 8.0 GT/s PCIe x16 link)
Remember that with 2 different GPUs, each is configured separately. My system shows both nvidia GPUs, one on an x4 link and one on an x16 link with different speeds.
Since you show the intel gpu on an x8 link why not look at the nvidia gpu as well in dmesg. It probably shows a different link with a different speed limit.
Also boot with the older kernel and verify that there is actually a recorded difference before reporting an issue. What is shown so far does not reveal an actual change.
I have no explanation for that, but yes it is what I thought should be shown. Definitely a difference.
lspci | grep -i vga should show the addresses for both GPUs (if you have both) and you can then look in detail at the dmesg output for both. by using grep for the pci address for each card.
True. I was hoping to find someone in the Kernel team for that exact reason.
Though from what I have seen, this issue began for me roughly around kernel 6.10 with Manjaro on my old Laptop. Though even 6.6 no longer works where it once did.
Just checked the lspci -vv outputs again. Specifically the PCIe bridges, and found that they are limited to 2.5GT/s on kernel 6.13 and are at 16GT/s on 6.1.
I’ve also tested Manjaro 23.0 and 24.0 live ISOs (kernel 6.5 and 6.9 respectively) and found the issues there as well. Links to lspci outputs below:
[ 0.463260] pci 0000:01:00.0: 16.000 Gb/s available PCIe bandwidth, limited by 2.5 GT/s PCIe x8 link at 0000:00:01.1 (capable of 126.016 Gb/s with 8.0 GT/s PCIe x16 link)
Ignore the low figures as they are bullshit.
Use nvidia-settings powermizer tab, it shows the pcie link rates, set the prefer mode to maximum.
Does that show the pcie link rates increase?
Also having two nvme devices can limit it, I removed one and the rate increased to x16
Some m2 slots can also limit the rate of other pcie slots, check the mobo manual for details.
[ 0.464240] pci 0000:01:00.0: 32.000 Gb/s available PCIe bandwidth, limited by 2.5 GT/s PCIe x16 link at 0000:00:01.1 (capable of 126.016 Gb/s with 8.0 GT/s PCIe x16 link)