# I/O Failure, potential kernel issue?

## Chagatai

I've been recently having issues where suddenly I'm not getting any i/o and it's hard to predict when it's going to happen. It's happened 6 times within a week just recently. One time during a big upgrade of 30 packages, and the rest happened when I was downloading some YouTube videos, but most recently just after my laptop went to sleep and I opened the lid. Immediately getting the error.

I basically don't get any reads and if I have a terminal open and type in any command I just get "zsh: Input/otput error: <command>" for any command I type in. I'm going to post some logs below and give some relevant info.

I'm on a Purism Librem 15v3 laptop. I have some suspicions that this might either be a storage controller issue or an issue with my new NVMe though I doubt it since it's only been in use for 2 months or so. I also thought that if it's a kernel issue, maybe the kernel i/o scheduling could be messing up and I've switched from using no scheduler to mq-deadline and this hasn't resolved the issue. I'm really hoping that it's not a hardware issue, so any assistance in troubleshooting this is much appreciated.

lspci:

```

00:00.0 Host bridge: Intel Corporation Xeon E3-1200 v5/E3-1500 v5/6th Gen Core Processor Host Bridge/DRAM Registers (rev 08)

00:02.0 VGA compatible controller: Intel Corporation Skylake GT2 [HD Graphics 520] (rev 07)

00:04.0 Signal processing controller: Intel Corporation Xeon E3-1200 v5/E3-1500 v5/6th Gen Core Processor Thermal Subsystem (rev 08)

00:14.0 USB controller: Intel Corporation Sunrise Point-LP USB 3.0 xHCI Controller (rev 21)

00:14.1 USB controller: Intel Corporation Device 9d30 (rev 21)

00:14.2 Signal processing controller: Intel Corporation Sunrise Point-LP Thermal subsystem (rev 21)

00:17.0 SATA controller: Intel Corporation Sunrise Point-LP SATA Controller [AHCI mode] (rev 21)

00:1c.0 PCI bridge: Intel Corporation Sunrise Point-LP PCI Express Root Port #5 (rev f1)

00:1d.0 PCI bridge: Intel Corporation Sunrise Point-LP PCI Express Root Port #9 (rev f1)

00:1f.0 ISA bridge: Intel Corporation Sunrise Point-LP LPC Controller (rev 21)

00:1f.2 Memory controller: Intel Corporation Sunrise Point-LP PMC (rev 21)

00:1f.3 Audio device: Intel Corporation Sunrise Point-LP HD Audio (rev 21)

00:1f.4 SMBus: Intel Corporation Sunrise Point-LP SMBus (rev 21)

00:1f.5 Non-VGA unclassified device: Intel Corporation Device 9d24 (rev 21)

01:00.0 Network controller: Qualcomm Atheros AR9462 Wireless Network Adapter (rev 01)

02:00.0 Non-Volatile memory controller: Samsung Electronics Co Ltd Device a809

```

Here's my NVMe's smart-log:

```

Smart Log for NVME device:nvme0n1 namespace-id:ffffffff

critical_warning                    : 0

temperature                         : 33 C

available_spare                     : 100%

available_spare_threshold           : 10%

percentage_used                     : 0%

data_units_read                     : 1891776

data_units_written                  : 1680006

host_read_commands                  : 127870787

host_write_commands                 : 4572958

controller_busy_time                : 32

power_cycles                        : 114

power_on_hours                      : 57

unsafe_shutdowns                    : 13

media_errors                        : 0

num_err_log_entries                 : 0

Warning Temperature Time            : 0

Critical Composite Temperature Time : 0

Temperature Sensor 1                : 33 C

Temperature Sensor 2                : 34 C

Thermal Management T1 Trans Count   : 0

Thermal Management T2 Trans Count   : 37

Thermal Management T1 Total Time    : 0

Thermal Management T2 Total Time    : 8

```

Here's the syslog at around the time where the error most recently happened:

```

Jul 23 22:37:37 kano kernel: hid-generic 0003:046D:C077.0001: input,hidraw0: USB HID v1.11 Mouse [Logitech USB Optical Mouse] on usb-0000:00:14.0-3/input0

Jul 24 00:26:56 kano kernel:  sda: sda1

Jul 24 00:26:56 kano kernel: ata1.00: exception Emask 0x10 SAct 0x1000 SErr 0x280100 action 0x6 frozen

Jul 24 00:26:56 kano kernel: ata1.00: irq_stat 0x08000000, interface fatal error

Jul 24 00:26:56 kano kernel: ata1: SError: { UnrecovData 10B8B BadCRC }

Jul 24 00:26:56 kano kernel: ata1.00: failed command: READ FPDMA QUEUED

Jul 24 00:26:56 kano kernel: ata1.00: cmd 60/f8:60:08:02:00/01:00:00:00:00/40 tag 12 ncq dma 258048 in

         res 40/00:60:08:02:00/00:00:00:00:00/40 Emask 0x10 (ATA bus error)

Jul 24 00:26:56 kano kernel: ata1.00: status: { DRDY }

Jul 24 00:26:56 kano kernel: ata1: hard resetting link

Jul 24 00:26:57 kano kernel: ata1: SATA link up 6.0 Gbps (SStatus 133 SControl 300)

Jul 24 00:26:57 kano kernel: ata1.00: supports DRM functions and may not be fully accessible

Jul 24 00:26:57 kano kernel: ata1.00: disabling queued TRIM support

Jul 24 00:26:57 kano kernel: ata1.00: supports DRM functions and may not be fully accessible

Jul 24 00:26:57 kano kernel: ata1.00: disabling queued TRIM support

Jul 24 00:26:57 kano kernel: ata1.00: configured for UDMA/133

Jul 24 00:26:57 kano kernel: sd 0:0:0:0: [sda] tag#12 FAILED Result: hostbyte=DID_OK driverbyte=DRIVER_SENSE cmd_age=0s

Jul 24 00:26:57 kano kernel: sd 0:0:0:0: [sda] tag#12 Sense Key : Illegal Request [current]

Jul 24 00:26:57 kano kernel: sd 0:0:0:0: [sda] tag#12 Add. Sense: Unaligned write command

Jul 24 00:26:57 kano kernel: sd 0:0:0:0: [sda] tag#12 CDB: Read(10) 28 00 00 00 02 08 00 01 f8 00

Jul 24 00:26:57 kano kernel: blk_update_request: I/O error, dev sda, sector 520 op 0x0:(READ) flags 0x80700 phys_seg 6 prio class 0

Jul 24 00:26:57 kano kernel: ata1: EH complete

Jul 24 00:26:57 kano kernel: ata1.00: exception Emask 0x10 SAct 0x400000 SErr 0x280100 action 0x6 frozen

Jul 24 00:26:57 kano kernel: ata1.00: irq_stat 0x09000000, interface fatal error

Jul 24 00:26:57 kano kernel: ata1: SError: { UnrecovData 10B8B BadCRC }

Jul 24 00:26:57 kano kernel: ata1.00: failed command: READ FPDMA QUEUED

Jul 24 00:26:57 kano kernel: ata1.00: cmd 60/08:b0:f8:03:00/00:00:00:00:00/40 tag 22 ncq dma 4096 in

         res 40/00:b0:f8:03:00/00:00:00:00:00/40 Emask 0x10 (ATA bus error)

Jul 24 00:26:57 kano kernel: ata1.00: status: { DRDY }

Jul 24 00:26:57 kano kernel: ata1: hard resetting link

Jul 24 00:26:57 kano kernel: ata1: SATA link up 6.0 Gbps (SStatus 133 SControl 300)

Jul 24 00:26:57 kano kernel: ata1.00: supports DRM functions and may not be fully accessible

Jul 24 00:26:57 kano kernel: ata1.00: disabling queued TRIM support

Jul 24 00:26:57 kano kernel: ata1.00: supports DRM functions and may not be fully accessible

Jul 24 00:26:57 kano kernel: ata1.00: disabling queued TRIM support

Jul 24 00:26:57 kano kernel: ata1.00: configured for UDMA/133

Jul 24 00:26:57 kano kernel: ata1: EH complete

Jul 24 00:26:57 kano kernel: ata1.00: exception Emask 0x10 SAct 0x800000 SErr 0x280100 action 0x6 frozen

Jul 24 00:26:57 kano kernel: ata1.00: irq_stat 0x08000000, interface fatal error

Jul 24 00:26:57 kano kernel: ata1: SError: { UnrecovData 10B8B BadCRC }

Jul 24 00:26:57 kano kernel: ata1.00: failed command: READ FPDMA QUEUED

Jul 24 00:26:57 kano kernel: ata1.00: cmd 60/00:b8:00:54:1c/02:00:1d:00:00/40 tag 23 ncq dma 262144 in

         res 40/00:b8:00:54:1c/00:00:1d:00:00/40 Emask 0x10 (ATA bus error)

Jul 24 00:26:57 kano kernel: ata1.00: status: { DRDY }

Jul 24 00:26:57 kano kernel: ata1: hard resetting link

Jul 24 00:26:57 kano kernel: ata1: SATA link up 6.0 Gbps (SStatus 133 SControl 300)

Jul 24 00:26:57 kano kernel: ata1.00: supports DRM functions and may not be fully accessible

Jul 24 00:26:57 kano kernel: ata1.00: disabling queued TRIM support

Jul 24 00:26:57 kano kernel: ata1.00: supports DRM functions and may not be fully accessible

Jul 24 00:26:57 kano kernel: ata1.00: disabling queued TRIM support

Jul 24 00:26:57 kano kernel: ata1.00: configured for UDMA/133

Jul 24 00:26:57 kano kernel: sd 0:0:0:0: [sda] tag#23 FAILED Result: hostbyte=DID_OK driverbyte=DRIVER_SENSE cmd_age=0s

Jul 24 00:26:57 kano kernel: sd 0:0:0:0: [sda] tag#23 Sense Key : Illegal Request [current]

Jul 24 00:26:57 kano kernel: sd 0:0:0:0: [sda] tag#23 Add. Sense: Unaligned write command

Jul 24 00:26:57 kano kernel: sd 0:0:0:0: [sda] tag#23 CDB: Read(10) 28 00 1d 1c 54 00 00 02 00 00

Jul 24 00:26:57 kano kernel: blk_update_request: I/O error, dev sda, sector 488395776 op 0x0:(READ) flags 0x80700 phys_seg 5 prio class 0

Jul 24 00:26:57 kano kernel: ata1: EH complete

Jul 24 00:27:16 kano kernel:  sda: sda1

Jul 24 00:27:16 kano last message buffered 1 times

Jul 24 00:27:17 kano kernel: ata1: limiting SATA link speed to 3.0 Gbps

Jul 24 00:27:17 kano kernel: ata1.00: exception Emask 0x10 SAct 0x800 SErr 0x280100 action 0x6 frozen

Jul 24 00:27:17 kano kernel: ata1.00: irq_stat 0x08000000, interface fatal error

Jul 24 00:27:17 kano kernel: ata1: SError: { UnrecovData 10B8B BadCRC }

Jul 24 00:27:17 kano kernel: ata1.00: failed command: READ FPDMA QUEUED

Jul 24 00:27:17 kano kernel: ata1.00: cmd 60/f8:58:08:0a:00/01:00:00:00:00/40 tag 11 ncq dma 258048 in

         res 40/00:58:08:0a:00/00:00:00:00:00/40 Emask 0x10 (ATA bus error)

Jul 24 00:27:17 kano kernel: ata1.00: status: { DRDY }

Jul 24 00:27:17 kano kernel: ata1: hard resetting link

Jul 24 00:27:17 kano kernel: ata1: SATA link up 3.0 Gbps (SStatus 123 SControl 320)

Jul 24 00:27:17 kano kernel: ata1.00: supports DRM functions and may not be fully accessible

Jul 24 00:27:17 kano kernel: ata1.00: disabling queued TRIM support

Jul 24 00:27:17 kano kernel: ata1.00: supports DRM functions and may not be fully accessible

Jul 24 00:27:17 kano kernel: ata1.00: disabling queued TRIM support

Jul 24 00:27:17 kano kernel: ata1.00: configured for UDMA/133

Jul 24 00:27:17 kano kernel: sd 0:0:0:0: [sda] tag#11 FAILED Result: hostbyte=DID_OK driverbyte=DRIVER_SENSE cmd_age=0s

Jul 24 00:27:17 kano kernel: sd 0:0:0:0: [sda] tag#11 Sense Key : Illegal Request [current]

Jul 24 00:27:17 kano kernel: sd 0:0:0:0: [sda] tag#11 Add. Sense: Unaligned write command

Jul 24 00:27:17 kano kernel: sd 0:0:0:0: [sda] tag#11 CDB: Read(10) 28 00 00 00 0a 08 00 01 f8 00

Jul 24 00:27:17 kano kernel: blk_update_request: I/O error, dev sda, sector 2568 op 0x0:(READ) flags 0x80700 phys_seg 46 prio class 0

Jul 24 00:27:17 kano kernel: ata1: EH complete

Jul 24 00:28:24 kano kernel: EXT4-fs (sda1): mounted filesystem with ordered data mode. Opts: (null)

Jul 24 00:34:38 kano kernel: usb 1-8: USB disconnect, device number 5

Jul 24 00:59:28 kano kernel: PM: suspend entry (deep)

Jul 24 00:59:28 kano kernel: Filesystems sync: 0.012 seconds

Jul 24 00:59:28 kano kernel: Freezing user space processes ... (elapsed 0.002 seconds) done.

Jul 24 00:59:28 kano kernel: OOM killer disabled.

Jul 24 00:59:28 kano kernel: Freezing remaining freezable tasks ... (elapsed 0.001 seconds) done.

Jul 24 00:59:28 kano kernel: printk: Suspending console(s) (use no_console_suspend to debug)

Jul 24 00:59:28 kano kernel: sd 0:0:0:0: [sda] Synchronizing SCSI cache

Jul 24 00:59:28 kano kernel: sd 0:0:0:0: [sda] Stopping disk

Jul 24 00:59:28 kano kernel: wlp1s0: deauthenticating from ac:84:c6:7b:9d:94 by local choice (Reason: 3=DEAUTH_LEAVING)

Jul 24 00:59:29 kano kernel: ACPI: EC: interrupt blocked

Jul 24 00:59:29 kano kernel: ACPI: Preparing to enter system sleep state S3

Jul 24 00:59:29 kano kernel: ACPI: EC: event blocked

Jul 24 00:59:29 kano kernel: ACPI: EC: EC stopped

Jul 24 00:59:29 kano kernel: PM: Saving platform NVS memory

Jul 24 00:59:29 kano kernel: Disabling non-boot CPUs ...

Jul 24 00:59:29 kano kernel: smpboot: CPU 1 is now offline

Jul 24 00:59:29 kano kernel: smpboot: CPU 2 is now offline

Jul 24 00:59:29 kano kernel: smpboot: CPU 3 is now offline

Jul 24 00:59:29 kano kernel: ACPI: Low-level resume complete

Jul 24 00:59:29 kano kernel: ACPI: EC: EC started

Jul 24 00:59:29 kano kernel: PM: Restoring platform NVS memory

Jul 24 00:59:29 kano kernel: Enabling non-boot CPUs ...

Jul 24 00:59:29 kano kernel: x86: Booting SMP configuration:

Jul 24 00:59:29 kano kernel: smpboot: Booting Node 0 Processor 1 APIC 0x1

Jul 24 00:59:29 kano kernel: smpboot: Scheduler frequency invariance went wobbly, disabling!

Jul 24 00:59:29 kano kernel: ACPI: \_SB_.CP01: Found 3 idle states

Jul 24 00:59:29 kano kernel: CPU1 is up

Jul 24 00:59:29 kano kernel: smpboot: Booting Node 0 Processor 2 APIC 0x2

Jul 24 00:59:29 kano kernel: ACPI: \_SB_.CP02: Found 3 idle states

Jul 24 00:59:29 kano kernel: CPU2 is up

Jul 24 00:59:29 kano kernel: smpboot: Booting Node 0 Processor 3 APIC 0x3

Jul 24 00:59:29 kano kernel: ACPI: \_SB_.CP03: Found 3 idle states

Jul 24 00:59:29 kano kernel: CPU3 is up

Jul 24 00:59:29 kano kernel: ACPI: Waking up from system sleep state S3

Jul 24 00:59:29 kano kernel: ACPI: EC: interrupt unblocked

Jul 24 00:59:29 kano kernel: ACPI: EC: event unblocked

Jul 24 00:59:29 kano kernel: ath: phy0: ASPM enabled: 0x43

Jul 24 00:59:29 kano kernel: sd 0:0:0:0: [sda] Starting disk

Jul 24 00:59:29 kano kernel: nvme nvme0: Shutdown timeout set to 8 seconds

Jul 24 00:59:29 kano kernel: nvme nvme0: 4/0/0 default/read/poll queues

Jul 24 00:59:29 kano kernel: ata1: SATA link up 3.0 Gbps (SStatus 123 SControl 320)

Jul 24 00:59:29 kano kernel: ata1.00: supports DRM functions and may not be fully accessible

Jul 24 00:59:29 kano kernel: ata1.00: disabling queued TRIM support

Jul 24 00:59:29 kano kernel: ata1.00: supports DRM functions and may not be fully accessible

Jul 24 00:59:29 kano kernel: ata1.00: disabling queued TRIM support

Jul 24 00:59:29 kano kernel: ata1.00: configured for UDMA/133

Jul 24 00:59:29 kano kernel: OOM killer enabled.

Jul 24 10:56:52 kano dhcpcd[1450]: wlp1s0: carrier lost

Jul 24 10:56:52 kano pulseaudio[1624]: [alsa-sink-ALC269VC Analog] alsa-util.c: Could not recover alsa device from SUSPENDED state, trying to restart PCM

Jul 24 00:59:29 kano kernel: Restarting tasks ... done.

Jul 24 00:59:29 kano kernel: video LNXVIDEO:00: Restoring backlight state

Jul 24 10:56:52 kano dhcpcd[1450]: wlp1s0: deleting address fe80::7e48:6c4e:9ce1:81d5

Jul 24 10:56:52 kano dhcpcd[1450]: wlp1s0: deleting route to 192.168.0.0/24

Jul 24 10:56:52 kano dhcpcd[1450]: wlp1s0: deleting default route via 192.168.0.1

Jul 24 00:59:29 kano kernel: PM: suspend exit

Jul 24 00:59:30 kano kernel: wlp1s0: authenticate with ac:84:c6:7b:9d:94

Jul 24 00:59:30 kano kernel: wlp1s0: send auth to ac:84:c6:7b:9d:94 (try 1/3)

Jul 24 00:59:30 kano kernel: wlp1s0: authenticated

Jul 24 00:59:30 kano kernel: wlp1s0: associating with AP with corrupt probe response

Jul 24 00:59:30 kano kernel: wlp1s0: associate with ac:84:c6:7b:9d:94 (try 1/3)

Jul 24 00:59:30 kano kernel: wlp1s0: RX AssocResp from ac:84:c6:7b:9d:94 (capab=0x411 status=0 aid=2)

Jul 24 00:59:30 kano kernel: wlp1s0: associated

Jul 24 10:56:53 kano dhcpcd[1450]: wlp1s0: carrier acquired

Jul 24 10:56:53 kano dhcpcd[1450]: wlp1s0: IAID db:76:d6:29

Jul 24 10:56:53 kano dhcpcd[1450]: wlp1s0: adding address fe80::7e48:6c4e:9ce1:81d5

Jul 24 10:56:53 kano dhcpcd[1450]: wlp1s0: soliciting an IPv6 router

Jul 24 10:56:53 kano dhcpcd[1450]: wlp1s0: rebinding lease of 192.168.0.106

Jul 24 10:56:53 kano dhcpcd[1450]: wlp1s0: probing address 192.168.0.106/24

Jul 24 10:56:54 kano dhcpcd[1450]: wlp1s0: Router Advertisement from fe80::ae84:c6ff:fe7b:9d94

Jul 24 10:56:54 kano dhcpcd[1450]: wlp1s0: soliciting a DHCPv6 lease

Jul 24 10:56:58 kano dhcpcd[1450]: wlp1s0: leased 192.168.0.106 for 86400 seconds

Jul 24 10:56:58 kano dhcpcd[1450]: wlp1s0: adding route to 192.168.0.0/24

Jul 24 10:56:58 kano dhcpcd[1450]: wlp1s0: adding default route via 192.168.0.1

Jul 24 01:04:54 kano kernel: kworker/dying (3909) used greatest stack depth: 12304 bytes left

Jul 24 12:00:49 kano syslogd[1396]: syslogd v2.2.3: restart.

Jul 24 12:00:44 kano kernel: Linux version 5.10.27-gentoo (root@kano) (gcc (Gentoo 10.3.0 p1) 10.3.0, GNU ld (Gentoo 2.35.2 p1) 2.35.2) #8 SMP Sun Jul 11 20:30:46 EEST 2021

Jul 24 12:00:44 kano kernel: Command line: BOOT_IMAGE=/vmlinuz-5.10.27-gentoo root=/dev/nvme0n1p2 ro

```

Are there any OS-related fixes for such a problem? Or is it purely a hardware issue? I'm currently a bit afraid of even upgrading my system in case i/o fails during kernel upgrade or something.

Any help is appreciated.

----------

## steve_v

I don't know much about NVME, but that smacks of a bus problem or a drive-controller failure to me... or maybe, just maybe a drive firmware bug.

As a total stab in the dark, if memory serves the ZFS guys were having problems with samsung firmware and queued trim a little while back, where the drive would hang whenever it gets a trim command.

I was under the impression this was resolved, but those errors do look eerily familiar. You might try disabling NCQ altogether (libata.force=noncq) or disabling trim at the filesystem level and see if it helps.

To be honest though, and I know you don't want to hear it, that does look like a hardware problem to me. If it were SATA I'd say replace your cables (CRC errors in 10B-8B decoding are usually a link-layer problem), but for NVME I guess all you can do is clean and reseat the connector. In any case I'd get the data off that drive pronto, in case it does decide to go completely titsup.

Other than that, well, the usual. Try it in a different port or another machine, boot Winblows for a while to eliminate driver issues, or ultimately even just RMA the drive and be done with it, since it's so new.

 *Chagatai wrote:*   

> I doubt it since it's only been in use for 2 months or so.

 

TBF my experience is mostly with spinning-rust, but personally I wouldn't consider a hardware failure at 2 months any less likely than one at 2 years... 

Quite the opposite in fact, I've seen plenty of drives die young (and some of them were even this newfangled solid-state stuff  :Razz: ). Infant-mortality is definitely a thing with complex electronics.

----------

## NeddySeagoon

Chagatai,

```
Jul 24 00:26:56 kano kernel:  sda: sda1

Jul 24 00:26:56 kano kernel: ata1.00: exception Emask 0x10 SAct 0x1000 SErr 0x280100 action 0x6 frozen

Jul 24 00:26:56 kano kernel: ata1.00: irq_stat 0x08000000, interface fatal error

Jul 24 00:26:56 kano kernel: ata1: SError: { UnrecovData 10B8B BadCRC }

Jul 24 00:26:56 kano kernel: ata1.00: failed command: READ FPDMA QUEUED

Jul 24 00:26:56 kano kernel: ata1.00: cmd 60/f8:60:08:02:00/01:00:00:00:00/40 tag 12 ncq dma 258048 in

         res 40/00:60:08:02:00/00:00:00:00:00/40 Emask 0x10 (ATA bus error)

Jul 24 00:26:56 kano kernel: ata1.00: status: { DRDY }

Jul 24 00:26:56 kano kernel: ata1: hard resetting link

Jul 24 00:26:57 kano kernel: ata1: SATA link up 6.0 Gbps (SStatus 133 SControl 300)

Jul 24 00:26:57 kano kernel: ata1.00: supports DRM functions and may not be fully accessible

Jul 24 00:26:57 kano kernel: ata1.00: disabling queued TRIM support

Jul 24 00:26:57 kano kernel: ata1.00: supports DRM functions and may not be fully accessible

Jul 24 00:26:57 kano kernel: ata1.00: disabling queued TRIM support

Jul 24 00:26:57 kano kernel: ata1.00: configured for UDMA/133

Jul 24 00:26:57 kano kernel: sd 0:0:0:0: [sda] tag#12 FAILED Result: hostbyte=DID_OK driverbyte=DRIVER_SENSE cmd_age=0s

Jul 24 00:26:57 kano kernel: sd 0:0:0:0: [sda] tag#12 Sense Key : Illegal Request [current]

Jul 24 00:26:57 kano kernel: sd 0:0:0:0: [sda] tag#12 Add. Sense: Unaligned write command

Jul 24 00:26:57 kano kernel: sd 0:0:0:0: [sda] tag#12 CDB: Read(10) 28 00 00 00 02 08 00 01 f8 00

Jul 24 00:26:57 kano kernel: blk_update_request: I/O error, dev sda, sector 520 op 0x0:(READ) flags 0x80700 phys_seg 6 prio class 0

Jul 24 00:26:57 kano kernel: ata1: EH complete 
```

That shows sda being detected, so its not NVME but it may be in a M.2 slot.

The drive claims that it received an Illegal Request.  Lets look at what the drive says about its internal health.

```
emerge smartmontools
```

Run 

```
smartcrtl -x /dev/sda
```

and post or pastebin the entire output.

The problem is either the drive, the motherboard port the drive is connected to, or the cable between them.

That its an intermittent problem points to the data cable, if there is one. 

Don't disturb anything yet, we need to investigate one thing at a time or we will never identify the problem, even if it goes away.

----------

## steve_v

 *NeddySeagoon wrote:*   

> 
> 
> That shows sda being detected, so its not NVME but it may be in a M.2 slot.
> 
> 

 

Whoops, I didn't even twig that the smart output and the errors in the kernel buffer are two different drives.   :Embarassed: 

Must be time for more coffee.

At least we're on the same page about the link errors though, that's something.

----------

## Chagatai

 *NeddySeagoon wrote:*   

> Chagatai,
> 
> ```
> Jul 24 00:26:56 kano kernel:  sda: sda1
> 
> ...

 

Just to clear up. I do have an SSD named /dev/sda but the NVMe is /dev/nvme0n1.

I'm using the SSD as a backup currently. I exclusively boot from and use /dev/nvme0n1.

My lsblk:

```

NAME        MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT

sda           8:0    0 232.9G  0 disk

└─sda1        8:1    0 232.9G  0 part

nvme0n1     259:0    0 931.5G  0 disk

├─nvme0n1p1 259:1    0   128M  0 part /boot

├─nvme0n1p2 259:2    0 232.8G  0 part /

└─nvme0n1p3 259:3    0 698.6G  0 part /home

```

smartctl -x /dev/sda

```

root@kano ~ # smartctl -x /dev/sda

smartctl 7.2 2020-12-30 r5155 [x86_64-linux-5.10.27-gentoo] (local build)

Copyright (C) 2002-20, Bruce Allen, Christian Franke, www.smartmontools.org

=== START OF INFORMATION SECTION ===

Model Family:     Samsung based SSDs

Device Model:     Samsung SSD 850 EVO 250GB

Serial Number:    S3PXNF0J803892W

LU WWN Device Id: 5 002538 d4230091c

Firmware Version: EMT03B6Q

User Capacity:    250,059,350,016 bytes [250 GB]

Sector Size:      512 bytes logical/physical

Rotation Rate:    Solid State Device

Form Factor:      2.5 inches

TRIM Command:     Available

Device is:        In smartctl database [for details use: -P show]

ATA Version is:   ACS-2, ATA8-ACS T13/1699-D revision 4c

SATA Version is:  SATA 3.1, 6.0 Gb/s (current: 6.0 Gb/s)

Local Time is:    Sat Jul 24 17:17:21 2021 EEST

SMART support is: Available - device has SMART capability.

SMART support is: Enabled

AAM feature is:   Unavailable

APM feature is:   Unavailable

Rd look-ahead is: Enabled

Write cache is:   Enabled

DSN feature is:   Unavailable

ATA Security is:  Disabled, NOT FROZEN [SEC1]

Wt Cache Reorder: Enabled

=== START OF READ SMART DATA SECTION ===

SMART overall-health self-assessment test result: PASSED

General SMART Values:

Offline data collection status:  (0x00)   Offline data collection activity

               was never started.

               Auto Offline Data Collection: Disabled.

Self-test execution status:      (   0)   The previous self-test routine completed

               without error or no self-test has ever

               been run.

Total time to complete Offline

data collection:       (    0) seconds.

Offline data collection

capabilities:           (0x53) SMART execute Offline immediate.

               Auto Offline data collection on/off support.

               Suspend Offline collection upon new

               command.

               No Offline surface scan supported.

               Self-test supported.

               No Conveyance Self-test supported.

               Selective Self-test supported.

SMART capabilities:            (0x0003)   Saves SMART data before entering

               power-saving mode.

               Supports SMART auto save timer.

Error logging capability:        (0x01)   Error logging supported.

               General Purpose Logging supported.

Short self-test routine

recommended polling time:     (   2) minutes.

Extended self-test routine

recommended polling time:     ( 133) minutes.

SCT capabilities:           (0x003d)   SCT Status supported.

               SCT Error Recovery Control supported.

               SCT Feature Control supported.

               SCT Data Table supported.

SMART Attributes Data Structure revision number: 1

Vendor Specific SMART Attributes with Thresholds:

ID# ATTRIBUTE_NAME          FLAGS    VALUE WORST THRESH FAIL RAW_VALUE

  5 Reallocated_Sector_Ct   PO--CK   100   100   010    -    0

  9 Power_On_Hours          -O--CK   098   098   000    -    8018

 12 Power_Cycle_Count       -O--CK   099   099   000    -    917

177 Wear_Leveling_Count     PO--C-   099   099   000    -    14

179 Used_Rsvd_Blk_Cnt_Tot   PO--C-   100   100   010    -    0

181 Program_Fail_Cnt_Total  -O--CK   100   100   010    -    0

182 Erase_Fail_Count_Total  -O--CK   100   100   010    -    0

183 Runtime_Bad_Block       PO--C-   100   099   010    -    0

187 Uncorrectable_Error_Cnt -O--CK   100   100   000    -    0

190 Airflow_Temperature_Cel -O--CK   065   057   000    -    35

195 ECC_Error_Rate          -O-RC-   200   200   000    -    0

199 CRC_Error_Count         -OSRCK   099   099   000    -    480

235 POR_Recovery_Count      -O--C-   099   099   000    -    87

241 Total_LBAs_Written      -O--CK   099   099   000    -    8591449344

                            ||||||_ K auto-keep

                            |||||__ C event count

                            ||||___ R error rate

                            |||____ S speed/performance

                            ||_____ O updated online

                            |______ P prefailure warning

General Purpose Log Directory Version 1

SMART           Log Directory Version 1 [multi-sector log support]

Address    Access  R/W   Size  Description

0x00       GPL,SL  R/O      1  Log Directory

0x01           SL  R/O      1  Summary SMART error log

0x02           SL  R/O      1  Comprehensive SMART error log

0x03       GPL     R/O      1  Ext. Comprehensive SMART error log

0x06           SL  R/O      1  SMART self-test log

0x07       GPL     R/O      1  Extended self-test log

0x09           SL  R/W      1  Selective self-test log

0x10       GPL     R/O      1  NCQ Command Error log

0x11       GPL     R/O      1  SATA Phy Event Counters log

0x13       GPL     R/O      1  SATA NCQ Send and Receive log

0x30       GPL,SL  R/O      9  IDENTIFY DEVICE data log

0x80-0x9f  GPL,SL  R/W     16  Host vendor specific log

0xa1           SL  VS      16  Device vendor specific log

0xa5           SL  VS      16  Device vendor specific log

0xce           SL  VS      16  Device vendor specific log

0xe0       GPL,SL  R/W      1  SCT Command/Status

0xe1       GPL,SL  R/W      1  SCT Data Transfer

SMART Extended Comprehensive Error Log Version: 1 (1 sectors)

No Errors Logged

SMART Extended Self-test Log Version: 1 (1 sectors)

No self-tests have been logged.  [To run self-tests, use: smartctl -t]

SMART Selective self-test log data structure revision number 1

 SPAN  MIN_LBA  MAX_LBA  CURRENT_TEST_STATUS

    1        0        0  Not_testing

    2        0        0  Not_testing

    3        0        0  Not_testing

    4        0        0  Not_testing

    5        0        0  Not_testing

  255        0    65535  Read_scanning was never started

Selective self-test flags (0x0):

  After scanning selected spans, do NOT read-scan remainder of disk.

If Selective self-test is pending on power-up, resume after 0 minute delay.

SCT Status Version:                  3

SCT Version (vendor specific):       256 (0x0100)

Device State:                        Active (0)

Current Temperature:                    35 Celsius

Power Cycle Min/Max Temperature:     33/35 Celsius

Lifetime    Min/Max Temperature:     18/43 Celsius

Under/Over Temperature Limit Count:   0/0

SCT Temperature History Version:     2

Temperature Sampling Period:         1 minute

Temperature Logging Interval:        10 minutes

Min/Max recommended Temperature:      0/70 Celsius

Min/Max Temperature Limit:            0/70 Celsius

Temperature History Size (Index):    128 (34)

Index    Estimated Time   Temperature Celsius

  35    2021-07-23 20:00    32  *************

  36    2021-07-23 20:10    33  **************

 ...    ..( 34 skipped).    ..  **************

  71    2021-07-24 02:00    33  **************

  72    2021-07-24 02:10    34  ***************

  73    2021-07-24 02:20    34  ***************

  74    2021-07-24 02:30    34  ***************

  75    2021-07-24 02:40    33  **************

  76    2021-07-24 02:50    34  ***************

  77    2021-07-24 03:00    34  ***************

  78    2021-07-24 03:10    33  **************

 ...    ..(  9 skipped).    ..  **************

  88    2021-07-24 04:50    33  **************

  89    2021-07-24 05:00    34  ***************

  90    2021-07-24 05:10    33  **************

 ...    ..( 18 skipped).    ..  **************

 109    2021-07-24 08:20    33  **************

 110    2021-07-24 08:30    34  ***************

 111    2021-07-24 08:40    35  ****************

 112    2021-07-24 08:50    36  *****************

 113    2021-07-24 09:00    36  *****************

 114    2021-07-24 09:10    35  ****************

 115    2021-07-24 09:20    34  ***************

 ...    ..(  2 skipped).    ..  ***************

 118    2021-07-24 09:50    34  ***************

 119    2021-07-24 10:00    35  ****************

 120    2021-07-24 10:10    41  **********************

 121    2021-07-24 10:20    37  ******************

 122    2021-07-24 10:30    36  *****************

 123    2021-07-24 10:40    36  *****************

 124    2021-07-24 10:50     ?  -

 125    2021-07-24 11:00    31  ************

 126    2021-07-24 11:10    33  **************

 127    2021-07-24 11:20    33  **************

   0    2021-07-24 11:30    34  ***************

   1    2021-07-24 11:40    34  ***************

   2    2021-07-24 11:50    34  ***************

   3    2021-07-24 12:00     ?  -

   4    2021-07-24 12:10    34  ***************

   5    2021-07-24 12:20    35  ****************

 ...    ..(  2 skipped).    ..  ****************

   8    2021-07-24 12:50    35  ****************

   9    2021-07-24 13:00    34  ***************

 ...    ..(  2 skipped).    ..  ***************

  12    2021-07-24 13:30    34  ***************

  13    2021-07-24 13:40    33  **************

  14    2021-07-24 13:50    34  ***************

 ...    ..(  7 skipped).    ..  ***************

  22    2021-07-24 15:10    34  ***************

  23    2021-07-24 15:20    33  **************

  24    2021-07-24 15:30    34  ***************

 ...    ..(  8 skipped).    ..  ***************

  33    2021-07-24 17:00    34  ***************

  34    2021-07-24 17:10    35  ****************

SCT Error Recovery Control:

           Read: Disabled

          Write: Disabled

Device Statistics (GP/SMART Log 0x04) not supported

Pending Defects log (GP Log 0x0c) not supported

SATA Phy Event Counters (GP Log 0x11)

ID      Size     Value  Description

0x0001  2            3  Command failed due to ICRC error

0x0002  2            3  R_ERR response for data FIS

0x0003  2            3  R_ERR response for device-to-host data FIS

0x0004  2            0  R_ERR response for host-to-device data FIS

0x0005  2            0  R_ERR response for non-data FIS

0x0006  2            0  R_ERR response for device-to-host non-data FIS

0x0007  2            0  R_ERR response for host-to-device non-data FIS

0x0008  2            0  Device-to-host non-data FIS retries

0x0009  2            5  Transition from drive PhyRdy to drive PhyNRdy

0x000a  2            5  Device-to-host register FISes sent due to a COMRESET

0x000b  2            0  CRC errors within host-to-device FIS

0x000d  2            0  Non-CRC errors within host-to-device FIS

0x000f  2            0  R_ERR response for host-to-device data FIS, CRC

0x0010  2            0  R_ERR response for host-to-device data FIS, non-CRC

0x0012  2            0  R_ERR response for host-to-device non-data FIS, CRC

0x0013  2            0  R_ERR response for host-to-device non-data FIS, non-CRC

```

smartctl -x /dev/nvme0n1

```

root@kano ~ # smartctl -x /dev/nvme0n1

smartctl 7.2 2020-12-30 r5155 [x86_64-linux-5.10.27-gentoo] (local build)

Copyright (C) 2002-20, Bruce Allen, Christian Franke, www.smartmontools.org

=== START OF INFORMATION SECTION ===

Model Number:                       Samsung SSD 980 1TB

Serial Number:                      S649NJ0R213695M

Firmware Version:                   1B4QFXO7

PCI Vendor/Subsystem ID:            0x144d

IEEE OUI Identifier:                0x002538

Total NVM Capacity:                 1,000,204,886,016 [1.00 TB]

Unallocated NVM Capacity:           0

Controller ID:                      5

NVMe Version:                       1.4

Number of Namespaces:               1

Namespace 1 Size/Capacity:          1,000,204,886,016 [1.00 TB]

Namespace 1 Utilization:            381,262,884,864 [381 GB]

Namespace 1 Formatted LBA Size:     512

Namespace 1 IEEE EUI-64:            002538 d2114036ea

Local Time is:                      Sat Jul 24 17:17:31 2021 EEST

Firmware Updates (0x16):            3 Slots, no Reset required

Optional Admin Commands (0x0017):   Security Format Frmw_DL Self_Test

Optional NVM Commands (0x0055):     Comp DS_Mngmt Sav/Sel_Feat Timestmp

Log Page Attributes (0x0f):         S/H_per_NS Cmd_Eff_Lg Ext_Get_Lg Telmtry_Lg

Maximum Data Transfer Size:         512 Pages

Warning  Comp. Temp. Threshold:     82 Celsius

Critical Comp. Temp. Threshold:     85 Celsius

Namespace 1 Features (0x10):        NP_Fields

Supported Power States

St Op     Max   Active     Idle   RL RT WL WT  Ent_Lat  Ex_Lat

 0 +     5.24W       -        -    0  0  0  0        0       0

 1 +     4.49W       -        -    1  1  1  1        0       0

 2 +     2.19W       -        -    2  2  2  2        0     500

 3 -   0.0500W       -        -    3  3  3  3      210    1200

 4 -   0.0050W       -        -    4  4  4  4     1000    9000

Supported LBA Sizes (NSID 0x1)

Id Fmt  Data  Metadt  Rel_Perf

 0 +     512       0         0

=== START OF SMART DATA SECTION ===

SMART overall-health self-assessment test result: PASSED

SMART/Health Information (NVMe Log 0x02)

Critical Warning:                   0x00

Temperature:                        34 Celsius

Available Spare:                    100%

Available Spare Threshold:          10%

Percentage Used:                    0%

Data Units Read:                    1,892,577 [968 GB]

Data Units Written:                 1,681,455 [860 GB]

Host Read Commands:                 127,883,483

Host Write Commands:                4,586,426

Controller Busy Time:               32

Power Cycles:                       114

Power On Hours:                     58

Unsafe Shutdowns:                   13

Media and Data Integrity Errors:    0

Error Information Log Entries:      0

Warning  Comp. Temperature Time:    0

Critical Comp. Temperature Time:    0

Temperature Sensor 1:               34 Celsius

Temperature Sensor 2:               37 Celsius

Thermal Temp. 2 Transition Count:   37

Thermal Temp. 2 Total Time:         8

Error Information (NVMe Log 0x01, 16 of 64 entries)

No Errors Logged

```

Last edited by Chagatai on Sat Jul 24, 2021 2:21 pm; edited 1 time in total

----------

## Chagatai

 *steve_v wrote:*   

> I don't know much about NVME, but that smacks of a bus problem or a drive-controller failure to me... or maybe, just maybe a drive firmware bug.
> 
> As a total stab in the dark, if memory serves the ZFS guys were having problems with samsung firmware and queued trim a little while back, where the drive would hang whenever it gets a trim command.
> 
> I was under the impression this was resolved, but those errors do look eerily familiar. You might try disabling NCQ altogether (libata.force=noncq) or disabling trim at the filesystem level and see if it helps.
> ...

 

At least it's good to hear that it doesn't look like a motherboard problem. The problem with this drive is that it's 1TB and it's the biggest one I own. But I do think I can backup most of the stuff on there and maybe just boot from the SSD. Using Windows isn't much of an option though   :Very Happy: . I didn't get a Purism device to have Windows on it.

I've suspected that the drive might be faulty for a while. Day one it had good speeds. Testing just yesterday it's 1/3 of what I saw just 2 months ago for the reads.

Thanks for the help.

----------

## NeddySeagoon

Chagatai,

Your problem is reported to be sda. You will be pleased to hear the NVME drive is not implicated.

From the provided log, its not possible to tell how sda is implemented.

The diagnosis proceeds in the same way. 

Look as the drives internal log and hopefully conclude that the drive is not the problem.

----------

## steve_v

 *Chagatai wrote:*   

> At least it's good to hear that it doesn't look like a motherboard problem.

 

Well, link-layer problems could be the sata controller (or even something like a dodgy trace on the motherboard), but IME it's far, far more likely to be the interconnects or the drive itself.

Just to be clear, in the SMART report you posted I see sda listed as "Samsung SSD 850 EVO 250GB". Is this a 2.5" SATA SSD we're talking about, or an m.2 drive?

----------

## Chagatai

 *steve_v wrote:*   

>  *Chagatai wrote:*   At least it's good to hear that it doesn't look like a motherboard problem. 
> 
> Well, link-layer problems could be the sata controller (or even something like a dodgy trace on the motherboard), but IME it's far, far more likely to be the interconnects or the drive itself.
> 
> Just to be clear, in the SMART report you posted I see sda listed as "Samsung SSD 850 EVO 250GB". Is this a 2.5" SATA SSD we're talking about, or an m.2 drive?

 

I've posted the SMART reports for both devices, as you can see in my reply to NeddySeagoon.

I did so, since the syslog only has errors related to /dev/sda. The thing is I don't even use the the 250GB SSD. I just keep it plugged in and I don't have it mounted anywhere. That's why I thought the problem must surely be with my 1TB NVMe which is the drive my OS is on.

----------

## NeddySeagoon

Chagatai,

Your sda does not count interface errors in its smart data.

The drive internals look good and the detailed error log mentions lots of host-to-device issues.

Together that points to either the drive interface itself, if that's true, you are really unlucky or the data cable or motherboard port.

Far more likely is the SATA data cable, then the motherboard SATA port.

Do one of the following but not both at the same time.

a) FIt a new SATA data cable

b) Move the motherboard end of the SATA data cable to a different SATA port. 

There is the risk that the existing SATA data cable is faulty and disturbing it fixes the fault for a few months.

----------

## Chagatai

 *NeddySeagoon wrote:*   

> Chagatai,
> 
> Your sda does not count interface errors in its smart data.
> 
> The drive internals look good and the detailed error log mentions lots of host-to-device issues.
> ...

 

Thank you for the advice, NeddySeagoon! I will try to see if I can get a new SATA data cable and I'll post the results in the thread.

I can't think you and steve_v enough. I have no idea when it comes to storage stuff. It's still a big mystery to me why exactly this is going on, since I'm not even using the drive. Do you think if I keep the NVMe and I remove the SATA SSD the same problem will persist? It's so strange that a drive I'm not even using is stopping all the storage i/o on my machine.

----------

## NeddySeagoon

Chagatai,

Something is using the drive. It will be accessed every power on, as the kernel will send it the Identify command and read its partition table.

If its mounted in /etc/fstab, the journal will be checked, the filesystem mounted and the 'dirty bit' written to the metadata.

These are all housekeeping things that the kernel does before you can use it.

That's lots of reads and at least one write.

If you disconnect the data cable, the kerenel will not see the drive, so the errors will stop.

----------

## Chagatai

 *NeddySeagoon wrote:*   

> Chagatai,
> 
> Something is using the drive. It will be accessed every power on, as the kernel will send it the Identify command and read its partition table.
> 
> If its mounted in /etc/fstab, the journal will be checked, the filesystem mounted and the 'dirty bit' written to the metadata.
> ...

 

I have an unfortunate update. I removed the problematic SSD and then attempted an upgrade a week after that and still got the i/o failure. The difference this time is that basically no errors got written to the log file we've been looking at. So I have nothing to go off of. I'm not sure what this says about the nature of the error.

I've been thinking that perhaps this might be due to me compiling in tmpfs. And maybe there is a kernel issue here after all. I wonder if there are any settings that would help me troubleshoot this stuff.

One idea I had is that maybe this is due to the system trying to suspend to RAM after compiling for a while. This has happened before and it doesn't fail every single time, in fact it was normal at some point. Perhaps when compiling larger packages it makes i/o to RAM and storage fail? Keyboard i/o is obviously not failing.

I was also wondering if there's any way the CPU could be at fault as it's particularly stressed during compilation. Could it be triggering an i/o failure and then just continuing as if it's business as usual?

I'm still thinking that there's a chance this is a kernel thing. But I just don't know how to diagnose.

----------

## BriggTrim

Hi....Seems like your SCSI circle (sdb5 segment, perhaps; 'ls - l/dev/sd* | grep 21' will help) is feeling awful. I'm apprehensive you have lost one of catalogs. Do you have reinforcements of the remainder? After you do, give examining fs trustworthiness a shot plates with fsck, and perhaps actual uprightness of circle surface.

----------

## NeddySeagoon

Chagatai,

Never run fsck until you have a a backup. It often makes a bad situation much worse and the only way to get back to where you started is your backup.

It unlikely ta be a software problem at all or it would common all over the net and on these forums. It's not.

What's unique to you then?

Your hardware is about all.

Post the SMART data for all your drives. and put dmesg onto a pastebin.

dmesg may show retries, even if they succeed before the SATA port gets reset.

----------

