Linux : ata: failed command: READ FPDMA QUEUED

By | July 29, 2013

Got “READ FPDMA QUEUED” errors from “dmesg” output on your Linux machine?

ata2.00: status: { DRDY ERR }
ata2.00: error: { UNC }
ata2.00: failed command: READ FPDMA QUEUED
ata2.00: cmd 60/28:70:28:19:89/00:00:6c:01:00/40 tag 14 ncq 20480 in
res 41/40:00:00:00:00/00:00:00:00:00/00 Emask 0x9 (media error)

This probably mean you have controller driver issue. Some controllers have known bugs with certain kernels and drivers.

You can resolve this by disabling NCQ (Native Command Queuing) as followed :

echo 1 > /sys/block/sdX/device/queue_depth

[Replace sdX with the involved device name (ie; sda)]

NOTE : To verify if NCQ is currently enabled, simply do :

cat /sys/block/sdX/device/queue_depth

If the returned value is higher than “1”, then it mean NCQ is enabled.

To enable NCQ, just do :

echo 31 > /sys/block/sdX/device/queue_depth