How to Fix Intel P4510 NVMe QID Timeout Errors on Linux

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.

Our Test Environment

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.

Symptoms

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.

What You’ll Do

  1. Identify your NVMe model and current firmware
  2. Update the SSD firmware (Solidigm SST)
  3. Adjust BIOS settings (disable aggressive PCIe/NVMe power states)
  4. Apply Linux kernel parameters for stability
  5. Stress-test and verify

Step 1 — Identify Your NVMe Model and Firmware Version

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.

Step 2 — Update NVMe Firmware Using Solidigm Storage Tool

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.

Step 3 — Disable Aggressive PCIe and NVMe Power States in BIOS

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: Disabled
  • PCIe L1 Substates (L1.1/L1.2): Disabled
  • NVMe Power Management / APST: Disabled
  • Global C-States: Disabled (testing only; re-enable later if stable)
  • PCIe Slot Link Speed: Force Gen3 (or Gen4 if proven stable)
  • PCIe Spread Spectrum: Disabled

Step 4 — Apply Linux Kernel Parameters for NVMe Stability

To 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.

Step 5 — Stress Test and Confirm No QID Timeouts

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

Optional — Test Sequential I/O

# Sequential read
fio --name=readseq --rw=read --bs=1M --iodepth=32 --numjobs=2 --direct=1 \
--size=20G --group_reporting --filename=/dev/nvme0n1

Final Notes

  • This fix is not limited to Intel DC P4510 — it can resolve QID timeout issues on multiple Intel NVMe models and some Micron/OEM variants.
  • Always perform firmware updates in a maintenance window.
  • For boot drives, consider using a rescue/live environment to run the update.

Why This Fits Netrouting Workloads

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.

Need help?

Find answers quick, talk to us on live chat.

Start Live Chat
support-chat-bottom
Phone
+31(0)88-045-4600
+1-305-705-6983
Table of Contents