1

I recently bought a new Samsung 870 EVO SSD for my computer (AMD CPU, nvidia GPU) which was previously running on a Samsung 860 EVO SSD. I installed Ubuntu 20.04 on the new disk. No issues during installation. I encountered no problems with the old SSD (same Ubuntu version). System works fine once booted (no errors whatsoever in dmesg). But now I am randomly getting these errors at boot (~ 1 out of 10 boots):

ata1.00: status: { DRDY }
ata1.00: failed command: READ FPDMA QUEUED
ata1.00: cmd 60/08:70:58:a6:46/00:00:10:00:00/40 tag 14 ncq 4096 in

When this happens, computer usually won't boot, or takes a lot of time and once booted OS is not usable. A simple restart fixes the issue and then everything works as expected.

What I tried :

  • Sent my first 870 back and asked for a replacement -> Same errors with the new one.
  • Changed SATA cable and switched SATA port on motherboard -> Same.
  • Smartctl -t long finds no errors.

There are lots of posts with the same issue, and it seems that the only offered solution is to disable NCQ. From what I understood, disabling it will significantly lower system performance which I would like to avoid. What can be wrong with this new SSD given that the previous model always worked just fine ?

Caribou123
  • 11
  • 1
  • 4

1 Answers1

0

Note: Download Samsung Magician and check your SSD firmware. https://www.samsung.com/semiconductor/minisite/ssd/download/tools/

Native Command Queuing (NCQ) is an extension of the Serial ATA protocol allowing hard disk drives to internally optimize the order in which received read and write commands are executed.

Edit sudo -H gedit /etc/default/grub and change the following line to include this extra parameter. Then do sudo update-grub to write the changes to disk. Reboot. Monitor hangs/etc., and watch grep -i FPDMA /var/log/syslog* or dmesg for continued error messages.

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash libata.force=noncq"

Update #1:

User set libata.force=noncqtrim, which is supposed to impact performance less than libata.force=noncq. Will continue to monitor.

heynnema
  • 73,649