Ubuntu Freezes with ATA FPDMA Queued Timeouts: Testing NCQ Before Blaming the SSD

Abstract: When SMART and filesystem checks pass but logs fill with SATA write timeouts, disabling NCQ separates a firmware interoperability fault from real hardware failure — here is how to run that test.

Created: 2026-11-02 by

Freezes accompanied by ATA WRITE FPDMA QUEUED timeout messages point at the SATA command-queuing path rather than — or at least not only — at failing flash media. Since SMART, vendor diagnostics, and a read-only e2fsck all passed, the most informative next experiment is booting with NCQ disabled via libata.force=noncq. If the timeouts vanish, you are dealing with a firmware/driver interoperability problem; if they persist, the evidence shifts toward genuine hardware failure.

What the log lines are telling you

"FPDMA QUEUED" is how the kernel prints NCQ commands. Native Command Queuing lets the drive receive several read and write requests at once and reorder them internally for efficiency. A timeout on a queued write means the drive never completed the command within the allotted time. The libata layer then resets the SATA link, the failed command surfaces as an I/O error to the block layer, ext4 aborts its journal and remounts read-only as a protective measure, and eventually the kernel can no longer page binaries from disk — which is why even ls and sudo start failing with "Input/output error". Every symptom in a case like this is one cascade from a single storage-level fault, and that fault can live in the drive's firmware, the controller, or the driver — not necessarily in the flash itself.

Why "everything passed" doesn't clear the drive

  • SMART extended self-test exercises the media internally. It does not stress the host interface with a deep queue of concurrent commands.
  • Vendor diagnostics have similar scope: a quick pass/fail of the device, not a long interoperability soak test.
  • e2fsck -f -n verifies metadata consistency of a static filesystem. It cannot test the live command path between kernel and drive, and read-only mode skips journal replay entirely.

A clean bill of health from all three is therefore entirely consistent with an NCQ-related fault that only appears under real queued write load.

Preserve the evidence first

Before changing anything, capture the kernel log and SMART data to external storage:

journalctl -b -k > ~/kernel-$(date +%F).log
sudo smartctl -a /dev/sda > ~/smart-$(date +%F).txt

Patterns worth searching later: FPDMA, hard resetting link, COMRESET, I/O error, dev sda, and EXT4-fs. In the smartctl output, look at the ATA Error Count and the stored error log — entries there often name the exact failed command (frequently WRITE FPDMA QUEUED) and the affected sectors. Also note the circumstances of each freeze: idle or under load, right after resume from suspend, or during the weekly fstrim run. The pattern matters when interpreting the next step.

The NCQ experiment

Edit /etc/default/grub so the line reads:

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash libata.force=noncq"

Run sudo update-grub, reboot, and confirm the parameter reached the kernel with cat /proc/cmdline. Then use the machine normally while watching journalctl -k -f in a terminal, and give it several days to reproduce whatever workload previously triggered the freezes.

A more surgical variant exists: libata.force=noncqtrim disables queuing only for TRIM/DSM commands. Ubuntu runs fstrim.timer weekly, and some SSD firmwares are known to mishandle queued TRIM while handling queued reads and writes fine. If your freezes cluster around that weekly window, try noncqtrim first; if timeouts appear at random times, use the full noncq setting for a cleaner experiment.

Interpreting the outcome

Errors stop with NCQ off. Keep the parameter as a permanent workaround — on a modern SSD used for desktop work, the performance cost is negligible. Then address the root cause properly: check the laptop and SSD vendor for firmware updates, install any pending BIOS update, and test newer kernels. Queued-command mishandling in specific SSD firmware revisions is a well-documented class of bug.

Errors continue with NCQ off. The failing commands are now plain, non-queued ones, which strengthens the hardware hypothesis. Useful next tests: run a full read sweep from the live USB with sudo dd if=/dev/sda of=/dev/null bs=1M status=progress while watching dmesg; re-run smartctl -a immediately after the next failure and compare error counts; and if possible, test the drive in a USB enclosure or another machine — or a different drive in this laptop.

Either way, once storage is stable again, run a writable sudo e2fsck -f /dev/sda2 from the live USB. Your earlier check was read-only and the journal was aborted mid-flight, so a full pass is warranted before trusting the filesystem again.

Other suspects worth eliminating

  • Link power management. You already forced max_performance — verify it actually stuck by checking /sys/class/scsi_host/host*/link_power_management_protocol. Conversely, some SSDs misbehave at aggressive power saving, so both directions are worth testing.
  • The CUPS error. A misconfigured print service can make the desktop feel sluggish, but no userspace service can generate ATA timeouts. Treat responsiveness complaints and storage errors as two separate problems.
  • Physical connection. Reseating the SSD is free and rules out a marginal board connector, which can produce intermittent link resets that look exactly like this.

Frequently Asked Questions

Will disabling NCQ hurt performance?

For typical desktop workloads on an SSD, barely. NCQ mainly benefits spinning disks and deep-queue server storage; a laptop rarely notices the loss of command reordering.

What does "WRITE FPDMA QUEUED" actually mean?

It is the kernel's name for an NCQ write — First Party DMA, queued. The word "queued" is the clue that the failure involves the drive's command-queue handling rather than a simple read error.

Can I leave libata.force=noncq set permanently?

Yes. It is a standard kernel parameter and survives package updates as long as the line remains in /etc/default/grub. Re-run update-grub after any manual edit.

Should I try noncqtrim before noncq?

If failures correlate with the weekly TRIM window, yes — it is the narrower fix. If failures are random, go straight to noncq so the experiment is unambiguous.

My root filesystem was remounted read-only. Is my data damaged?

Usually not. The read-only remount is ext4 protecting itself from further writes. Once the storage fault is fixed, run a full e2fsck -f on the unmounted partition and let it replay the journal.

SMART passed twice — do I still need to suspect the drive?

Conditionally, yes. SMART measures media health, not interface and queue behavior under host load. A drive can pass every self-test and still time out on queued commands due to a firmware bug.

Latest News

How to Display Output of xterm Command in Terminal Screen using Cron

Resolve the inability to display xterm output in a terminal screen from cron by redirecting logs or using wall instead of insecure X11 workarounds.

Read More
Expose Local Server on VPS Preserving Real Client IPs (OS Level)

Resolve VPS logging showing only gateway IPs by configuring reverse proxies to forward real client addresses via X-Forwarded-For headers.

Read More
How to Clear Recent Files History in Linux without Deleting Actual Files?

Clear recent files history in Linux by deleting ~/.local/share/recently-used.xbel without removing the actual files.

Read More
Best HDD Copy Strategy: Manually Syncing and Rewriting Scratch

Resolve data drift between two 4TB hard drives by using rsync with the --delete flag to manually sync and rewrite scratch data for an exact mirror.

Read More
Understanding Bash Prompt Abbreviations: An Overview

Resolve repetitive typing errors by creating and persisting Bash aliases in the .bashrc file for improved command-line efficiency.

Read More
Free Tools and Methods to Log Real-Time Performance Details in Task Manager

Log real-time CPU and memory metrics to CSV files using Windows Performance Monitor Data Collector Sets to troubleshoot system slowness.

Read More
Contact Qatar Airways Customer Service: Phone Number, Help Center, and More

Resolve urgent Qatar Airways reservation issues like flight changes and baggage claims using the US phone number +1801-855-5905 or online self-service tools.

Read More
Windows 11: Alt Codes Displaying Wrong Characters - Solutions

Resolve Windows 11 Alt codes showing wrong characters by verifying the US keyboard layout and enabling Num Lock.

Read More
Run Programs with Elevated Privileges: A Comprehensive Guide

Eliminates the need to type sudo for frequent administrative tasks by configuring .bashrc aliases or functions.

Read More
Dynamically Changing Dates in Excel Formulas Using Cells

Eliminate manual date updates in Excel by using cell references to create dynamic formulas that automatically adjust calculations when input dates change.

Read More
Granting Edit Access to a Specific Excel Sheet in an Office 365 User Email ID-Based Login

Excel Online lacks native sheet-level permissions, so users must split workbooks or use worksheet protection to isolate edit access for specific tabs.

Read More
Creating Network Load on Local Wi-Fi from One PC

Generate sustained Wi-Fi bandwidth load from a single PC using a VM SFTP server to test router stability and throughput.

Read More
Changing the Default Editor for Batch Files in Windows 11's File Explorer

Resolve the issue of batch files opening in Notepad by changing the default editor to a preferred application like VS Code.

Read More
Gain WiFi Connection Minutes Before Losing it by Changing MAC Address

Bypass MAC address filtering to restore WiFi connectivity temporarily when a device is blocked by network administrators.

Read More
Photos Folders Turned Black: Troubleshooting Picture Applications on Windows

Resolve black screens in Windows Photos by resetting the app, updating graphics drivers, and repairing system files.

Read More
Troubleshooting High CPU Temperature Values: A Step-by-Step Guide

Resolve high CPU temperatures and thermal throttling by monitoring with Speedfan, cleaning dust from cooling components, and replacing degraded thermal paste.

Read More
Make cURL establish TLS connection with CA unknown

Resolve cURL TLS connection failures with unknown or self-signed certificates by using the --insecure flag to bypass CA validation.

Read More
Troubleshooting Incorrect Network Metrics Values in Grafana, Prometheus, InfluxDB, and Telegraf

Fix incorrect network metrics in Grafana, Prometheus, InfluxDB, and Telegraf by verifying interface selection, resolving unit mismatches, and handling counter resets.

Read More
Start Another Terminal Window (cmd.exe) Windows Repair/Troubleshoot

Provides step-by-step instructions to access the Windows Command Prompt via bootable media for advanced system repair and troubleshooting.

Read More
Thinkpad P1 Gen 6: Sudden Thunderbolt 3 Dock USB-C Charging Stopped Working

Resolve sudden Thunderbolt 3 dock USB-C charging and internet failure on ThinkPad P1 Gen 6 by updating firmware, resetting the dock, and adjusting power settings.

Read More
ASUS Windows 11 Laptop: Internet Connection Issue with Hotspot

Resolve ASUS Windows 11 laptop spinning wheel issue when connecting to mobile hotspot by resetting network stack, disabling IPv6, and adjusting power settings.

Read More
Developing iOS Project with Firebase: Logging in and Sending Push Notifications

Integrates Firebase to enable secure user authentication and push notifications in iOS applications.

Read More
Troubleshooting Bash Script with Suspected Issues of Spaces, Dashes, Filenames and Quoting

Resolve Bash script failures caused by word splitting, globbing, and special characters in filenames by applying proper quoting techniques.

Read More
Populating OneDrive Folder for Local Backup without Affecting Remote Files

Prevent OneDrive from deleting remote files during Windows reinstallation by unlinking the account or using symbolic links to isolate local data.

Read More
Force First Frame as Keyframe Without Re-encoding: A Quick Solution

Resolve inaccurate seeking and playback glitches by re-encoding video to ensure the first frame is a valid keyframe.

Read More
Find Information in Database Using WSL (Ubuntu) on Windows-10

Resolve database connection issues from WSL Ubuntu on Windows 10 by configuring client tools and network access to query remote or local servers.

Read More
Configuring a New Router with Different Networks: One Family, One Guest

Resolve IP conflicts and isolate guest traffic by configuring a second router with a distinct subnet via its WAN port.

Read More
Quickly Open Multiple Stock Websites with a Single Command

Solve the problem of manually opening multiple stock research websites by creating a single command to launch them simultaneously on Windows, macOS, or Linux.

Read More
Improved Adobe Acrobat Search Experience: Access Advanced Search with Ease

Access advanced search filters like case sensitivity and regex in Adobe Acrobat by clicking More Options in the Find bar.

Read More
Port Forwarding VM via OpenVPN: A Comprehensive Guide

Configure OpenVPN server and iptables to forward specific ports from VPN clients to a virtual machine's internal IP address.

Read More
Understanding Partitions in the 1980s: A Look Back at MS-DOS and Master Boot Record

Explains how the Master Boot Record and partition table enabled MS-DOS to manage multiple disk volumes on a single physical drive.

Read More
Windows 10 Enterprise: Keyboard Not Detected in Managed Organization with Admin Privileges

Resolve Windows 10 Enterprise keyboard detection failures caused by Group Policy restrictions, driver corruption, or USB enumeration errors.

Read More
Can't Find x86_64 Versions of Applications on MacOS arm64 (M1)

Resolve missing x86_64 app issues on M1 Macs by installing Rosetta 2 and reinstalling apps as universal binaries.

Read More
How to Hide Installation Source for an Android App

Manage Android app installation source visibility by using USB transfers or file managers to reduce browser traces and isolate data via work profiles.

Read More
Connecting Momentus 4200.2 ST9808210A Hard Drive via USB Cable

Resolve inability to access Seagate Momentus 4200.2 ST9808210A hard drive by connecting it via USB using a compatible SATA-to-USB adapter and configuring the disk in Windows.

Read More