Skip to content

Conversation

P33M
Copy link
Contributor

@P33M P33M commented Mar 27, 2025

Flaky NVMe HATs/drives will frequently bounce the link, degrading performance. Or completely fall over, if the link is so bad that a completion timeout occurs. Capturing error counts (with manual triggers for intermittent failures) sheds light on this.

Bad layout and routing on a CM4/5 interface board isn't going to be diagnosable from a link trace, but you can at least tell if your remote terminations are being sensed and/or the remote EP is trying to talk to you.

Add two features that assist in diagnosing link instability issues.

The debugfs additions allow for snapshots of the Physical Layer
statistics registers to be taken, during either free-running capture or
after a hardware-controlled capture interval.

To arm the capture engine (and reset the stats counters), write an
integer N to:
/sys/kernel/debug/pcie@<addr>/stats_trigger

The engine will run forever with a value of 0, or disarm after N
microseconds.

To snapshot the hardware stats counters, write to:
/sys/kernel/debug/pcie@<addr>/stats_snapshot

Reading this file will return the snapshot. If no writes have occurred
since boot, the snapshot will be of the initial link training period.

The ltssm_trace module parameter printk's the states during initial link
startup, in situations where failure to establish the link is a fatal
error.

Signed-off-by: Jonathan Bell <[email protected]>
@P33M P33M requested a review from pelwell March 28, 2025 13:31
@pelwell pelwell merged commit 5227282 into raspberrypi:rpi-6.12.y Mar 28, 2025
13 checks passed
popcornmix added a commit to raspberrypi/firmware that referenced this pull request Mar 31, 2025
kernel: overlay: Rework/fix the Pi 5 MIDI UART overlays
See: raspberrypi/linux#6743

kernel: Add debug knobs to pcie_brcmstb
See: raspberrypi/linux#6745

kernel: ARM64: dts: Add sd and sd_poll_once params to CM5
See: raspberrypi/linux#6744

firmware: Vl805 reset improvements
popcornmix added a commit to raspberrypi/rpi-firmware that referenced this pull request Mar 31, 2025
kernel: overlay: Rework/fix the Pi 5 MIDI UART overlays
See: raspberrypi/linux#6743

kernel: Add debug knobs to pcie_brcmstb
See: raspberrypi/linux#6745

kernel: ARM64: dts: Add sd and sd_poll_once params to CM5
See: raspberrypi/linux#6744

firmware: Vl805 reset improvements
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants