Table of Contents
Experiencing QID timeout
messages in Linux logs with your NVMe SSD? This guide explains how to resolve them by updating firmware, tuning BIOS, and applying Linux kernel parameters. While we tested this fix on Intel DC P4510 SSDs, the same symptoms — and solution — also apply to Intel P4610, P4511, P3520, P3600, P3700, 660p, 760p, and some Micron/OEM variants that share Intel NVMe firmware foundations.
These errors are typically caused by a combination of outdated NVMe firmware, aggressive PCIe Active State Power Management (ASPM), and Autonomous Power State Transitions (APST) that trigger drive queue stalls under certain workloads.
We validated this process on an AMD Ryzen 9 7950X3D server with 192 GB RAM
and 2× NVMe
drives, using Supermicro MicroCloud systems with H13
mainboards. These single-socket, high-clock servers are ideal for gaming workloads, low-latency applications, and other performance-sensitive use cases on our DDoS-protected global network. For this demonstration we used a cost-effective Intel DC P4510 — a popular choice among our customers for its excellent performance-to-cost ratio in bare metal dedicated servers.
nvme nvme0: I/O 9 QID 9 timeout, completion polled nvme nvme0: I/O 72 QID 26 timeout, completion polled
These messages appear in dmesg
or /var/log/syslog
and usually repeat during heavy I/O, high queue depth operations, or after idle wake-ups.
First, confirm your NVMe SSD model and the current firmware revision. This ensures you download the correct update and apply compatible settings.
sudo apt update sudo apt install -y nvme-cli sudo nvme list sudo nvme id-ctrl /dev/nvme0 | grep -iE 'mn|fr'
Note the mn
(Model Number) and fr
(Firmware Revision). Example: INTEL SSDPE2KX010T8
with firmware VDV10131
.
Intel’s enterprise SSD firmware is now maintained by Solidigm. Use their Storage Tool (SST) to download and install the latest firmware. Updating firmware often resolves known queue handling issues and improves stability on Linux.
Since Intel moved enterprise SSD support to Solidigm, you won’t find the .bin firmware on Intel’s old site. You need Solidigm’s tooling. At the time of writing, the latest version can be found at https://www.solidigm.com/support-page/drivers-downloads/ka-00085.html.
# Direct link to Debian based binaries of the Solidigm Storage Tool https://sdmsdfwdriver.blob.core.windows.net/files/kba-gcc/drivers-downloads/ka-00085/sst--2-4/sst-cli-linux-deb--2-4.zip # Install SST (example package) sudo apt install ./sst_2.4.323-0_amd64.deb # Check available updates sudo sst show -ssd # Apply firmware update sudo sst load -ssd /dev/nvme0n1 # Confirm with Y when prompted # Reboot to activate firmware sudo reboot # Verify new version sudo nvme id-ctrl /dev/nvme0 | grep -i fr
For Intel DC P4510 drives, the most stable version at the time of writing is VDV10194
. This update is non-downgradable.
Many QID timeout issues are linked to the NVMe controller entering deep idle states. Disable these features in the BIOS to keep the link active and avoid controller wake-up delays.
PCIe ASPM / Link State Power Management
: DisabledPCIe L1 Substates (L1.1/L1.2)
: DisabledNVMe Power Management / APST
: DisabledGlobal C-States
: Disabled (testing only; re-enable later if stable)PCIe Slot Link Speed
: Force Gen3 (or Gen4 if proven stable)PCIe Spread Spectrum
: DisabledTo complement BIOS changes, add these kernel parameters to prevent the Linux NVMe driver from entering deep power states or enabling ASPM.
sed -i '/GRUB_CMDLINE_LINUX_DEFAULT=/c\GRUB_CMDLINE_LINUX_DEFAULT="nvme_core.io_timeout=4294967295"' /etc/default/grub sudo update-grub sudo reboot
nvme_core.default_ps_max_latency_us=0
stops deep idle NVMe states, pcie_aspm=off
disables PCIe ASPM, and iommu=pt
reduces DMA mapping latency.
Use fio
to simulate sustained I/O and check system logs for recurring QID errors.
# Random read test fio --name=randread --ioengine=libaio --iodepth=64 --rw=randread --bs=4k \ --direct=1 --size=10G --numjobs=4 --runtime=300 --group_reporting \ --filename=/dev/nvme0n1
After the test, check:
dmesg | grep -i nvme tail -n 100 /var/log/syslog | grep -i nvme
# Sequential read fio --name=readseq --rw=read --bs=1M --iodepth=32 --numjobs=2 --direct=1 \ --size=20G --group_reporting --filename=/dev/nvme0n1
Our Supermicro MicroCloud H13 platforms paired with Ryzen 9 CPUs deliver exceptional per-core throughput for game servers
, low-latency APIs
, edge services
, and encoding/transcoding
workloads. These same configurations are available in our bare metal dedicated server product line — ideal for customers seeking affordable, high-performance hardware backed by our global, DDoS-protected network.
The Intel DC P4510 used in this guide is a cost-effective choice that delivers strong enterprise-grade performance per dollar, making it a popular option among our customer base for budget-friendly IaaS deployments.