NVMe SSD sustained write throughput collapses under Linux when PCIe ASPM is enabled
Environment
Desktop motherboard X570 with AMD CPU, Ubuntu 22.04 running kernel 5.15. NVMe Samsung 980 Pro in primary M.2 slot. BIOS default power settings enabled ASPM/L1; kernel parameters unmodified by default.
Symptoms
Sustained sequential write (fio, 1 MiB block, direct=1) starts at expected ~2.8 GB/s but drops to ~400–600 MB/s after ~20–40 seconds when ASPM/L1 is enabled. I/O latency spikes correspond with throughput drops. Disabling ASPM in BIOS or booting with pcie_aspm=off restores sustained throughput.
Observations
dmesg reports frequent PCIe link state changes and NVMe controller power state transitions around the time throughput drops. lspci -vv for the NVMe device shows L1 supported and active; nvme-cli shows SMART read/write counters OK and no media errors. Firmware update for the drive applied (latest available). Changing fio concurrency and queue depth affects initial throughput but not the eventual drop. Swapping the drive to a different slot produced the same behavior when ASPM was enabled.
Already attempted
Updated NVMe firmware and motherboard BIOS to latest recommended by vendor, tried kernel boot params pcie_aspm=force and pcie_aspm=off, tested with different ioengine and block sizes, swapped to a PCIe adapter card and retested (similar issue when ASPM allowed). Confirmed disabling ASPM restores sustained performance. Collected dmesg and lspci outputs for analysis.
Question
Is the throughput collapse most likely caused by a device/BIOS/driver ASPM interaction bug, and what is the recommended setting to balance power savings and NVMe performance safely in production? Also what diagnostic data should be collected before filing bug reports with vendors?
Verified community troubleshooting
No answers yet..
Incident analysis
Most likely causes
Summary
Suggested Fixes
Continue troubleshooting
Related troubles
Matched from the title, description and tags
- Hardware27% match
NVMe SSD shows high latency and occasional I/O errors during sustained writes on Ubuntu 22.04
Open0 answers - Hardware24% match
Intermittent Linux kernel oops only under heavy memory pressure despite MemTest86 passing
Open0 answers - Hardware23% match
NVMe SSD Reallocated Sector Count increases only during heavy random-write FIO workload on Linux
Open0 answers - Databases22% match
MongoDB primary stalls and throughput collapses when WiredTiger cache reaches high utilization during sustained bulk inserts
Open0 answers - Audio & Video21% match
USB DAC produces audio dropouts and crackling when connected through a USB 3.0 bus-powered hub under CPU load on Linux laptop
Open0 answers