[PPC] Boot problems after the pci-v6.18-changes
Bjorn Helgaas
helgaas at kernel.org
Thu Oct 16 10:40:59 AEDT 2025
On Wed, Oct 15, 2025 at 10:13:04AM +0200, Herve Codina wrote:
> ...
> I also observed issues with the commit f3ac2ff14834 ("PCI/ASPM: Enable all
> ClockPM and ASPM states for devicetree platforms")
>
> My system is an ARM board (Marvel Armada 3720 DDB)
> https://elixir.bootlin.com/linux/v6.17.1/source/arch/arm64/boot/dts/marvell/armada-3720-db.dts
>
> I use an LAN966x PCI board
> https://elixir.bootlin.com/linux/v6.17.1/source/drivers/misc/lan966x_pci.c
>
> Usually, when I did a ping using the PCI board, I have more or less the
> following timings:
> # ping 192.168.32.100
> PING 192.168.32.100 (192.168.32.100): 56 data bytes
> 64 bytes from 192.168.32.100: seq=0 ttl=64 time=3.328 ms
> 64 bytes from 192.168.32.100: seq=1 ttl=64 time=2.636 ms
> 64 bytes from 192.168.32.100: seq=2 ttl=64 time=2.928 ms
> 64 bytes from 192.168.32.100: seq=3 ttl=64 time=2.649 ms
>
> But with a vanilla v6.18-rc1 kernel, those timings become awful:
> # ping 192.168.32.100
> PING 192.168.32.100 (192.168.32.100): 56 data bytes
> 64 bytes from 192.168.32.100: seq=0 ttl=64 time=656.634 ms
> 64 bytes from 192.168.32.100: seq=1 ttl=64 time=551.812 ms
> 64 bytes from 192.168.32.100: seq=2 ttl=64 time=702.966 ms
> 64 bytes from 192.168.32.100: seq=3 ttl=64 time=725.904 ms
>
> Reverting commit f3ac2ff14834 ("PCI/ASPM: Enable all ClockPM and
> ASPM states for devicetree platforms") fixes my timing issues.
We expect *some* performance impact from enabling ASPM, but this seems
excessive. You should be able to control the ASPM settings for an
individual device via sysfs:
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/Documentation/ABI/testing/sysfs-bus-pci?id=v6.17-rc1#n431
My guess is that L1.2 is enabled and the threshold values in the L1 PM
Substates control registers are bogus. I don't know how to fix those,
especially on a devicetree system. But it might be possible to fiddle
with them using setpci (while ASPM is disabled). Not for the faint of
heart.
Bjorn
More information about the Linuxppc-dev
mailing list