# ata(4) timeouts continue after disk replacement on new 12.0 installation - Issues with NVIDIA MCP51?



## buddy (Feb 25, 2019)

Morning Folks,

I am trying to move a host from Solaris 11 to FreeBSD 12.0-RELEASE-p3 but I am encountering disk timeouts when rsyncing 2GB+ files onto the host.
I believed it to be a disk issue so I replaced it but issues continued on new disk. I found I could boot back into Solaris and read disks with no issue when the same dd reads cause disconnects on FreeBSD.

Note disks are using ata(4) not ahci(4) as the NVIDIA MCP51 doesn't seem to support AHCI

This is an example of reading two disks (which aren't mounted in FreeBSD). Note that ada1 gets disconnected too (the zroot)
`dd if=/dev/ada0 of=/dev/zero bs=4096 &
dd if=/dev/ada2 of=/dev/zero bs=4096 &`


```
Feb 24 01:01:28 desktop kernel: (ada2:ata5:0:0:0): READ_MUL. ACB: c4 00 f8 eb 17 40 00 00 00 00 08 00
Feb 24 01:01:28 desktop kernel: (ada2:ata5:0:0:0): CAM status: Command timeout
Feb 24 01:01:28 desktop kernel: (ada2:ata5:0:0:0): Retrying command, 3 more tries remain
Feb 24 01:03:02 desktop kernel: (ada1:ata4:0:0:0): WRITE_MUL. ACB: c5 00 d0 6a 02 42 00 00 00 00 20 00
Feb 24 01:03:02 desktop kernel: (ada1:ata4:0:0:0): CAM status: Command timeout
Feb 24 01:03:02 desktop kernel: (ada1:ata4:0:0:0): Retrying command, 3 more tries remain
Feb 24 01:03:02 desktop kernel: (aprobe0:ata5:0:0:0): ATA_IDENTIFY. ACB: ec 00 00 00 00 40 00 00 00 00 00 00
Feb 24 01:03:02 desktop kernel: (aprobe0:ata5:0:0:0): CAM status: Command timeout
Feb 24 01:03:02 desktop kernel: (aprobe0:ata5:0:0:0): Retrying command, 0 more tries remain
Feb 24 01:03:02 desktop kernel: (aprobe1:ata4:0:0:0): ATA_IDENTIFY. ACB: ec 00 00 00 00 40 00 00 00 00 00 00
Feb 24 01:03:02 desktop kernel: (aprobe1:ata4:0:0:0): CAM status: Command timeout
Feb 24 01:03:02 desktop kernel: (aprobe1:ata4:0:0:0): Retrying command, 0 more tries remain
Feb 24 01:03:02 desktop kernel: (aprobe0:ata5:0:0:0): ATA_IDENTIFY. ACB: ec 00 00 00 00 40 00 00 00 00 00 00
Feb 24 01:03:02 desktop kernel: (aprobe0:ata5:0:0:0): CAM status: Command timeout
Feb 24 01:03:02 desktop kernel: (aprobe0:ata5:0:0:0): Error 5, Retries exhausted
Feb 24 01:03:02 desktop kernel: (aprobe1:ata4:0:0:0): ATA_IDENTIFY. ACB: ec 00 00 00 00 40 00 00 00 00 00 00
Feb 24 01:03:02 desktop kernel: (aprobe1:ata4:0:0:0): CAM status: Command timeout
Feb 24 01:03:02 desktop kernel: (aprobe1:ata4:0:0:0): Error 5, Retries exhausted
Feb 24 01:03:02 desktop kernel: (aprobe0:ata5:0:0:0): ATA_IDENTIFY. ACB: ec 00 00 00 00 40 00 00 00 00 00 00
Feb 24 01:03:02 desktop kernel: (aprobe0:ata5:0:0:0): CAM status: Command timeout
Feb 24 01:03:02 desktop kernel: (aprobe0:ata5:0:0:0): Error 5, Retry was blocked
Feb 24 01:03:02 desktop kernel: ada2 at ata5 bus 0 scbus5 target 0 lun 0
Feb 24 01:03:02 desktop kernel: ada2: <ST31000524AS JC45> s/n <snip> detached
Feb 24 01:03:02 desktop kernel: (aprobe1:ata4:0:0:0): ATA_IDENTIFY. ACB: ec 00 00 00 00 40 00 00 00 00 00 00
Feb 24 01:03:02 desktop kernel: (aprobe1:ata4:0:0:0): CAM status: Command timeout
Feb 24 01:03:02 desktop kernel: (aprobe1:ata4:0:0:0): Error 5, Retry was blocked
Feb 24 01:03:02 desktop kernel: ada1 at ata4 bus 0 scbus4 target 0 lun 0
Feb 24 01:03:02 desktop kernel: ada1: <HITACHI HDS7225SBSUN250G <CUT> V44OA9CA> s/n <snip> detached
```



It feels like I need to tweak something on the controller and I appreciate any thoughts on tests I could do.
Actions already taken include disabling SATA DMA in BIOS and setting the following but to no improvement
/boot/loader.conf 

```
security.bsd.allow_destructive_dtrace=0
kern.geom.label.disk_ident.enable="0"
kern.geom.label.gptid.enable="0"
zfs_load="YES"
nvidia_load="YES"
hint.ata.0.msi=0
hint.ata.1.msi=0
hint.ata.2.msi=0
hint.ata.3.msi=0
hint.ata.4.msi=0
hw.ata.ata_dma="0"
```



`dmesg`

```
---<<BOOT>>---
Copyright (c) 1992-2018 The FreeBSD Project.
Copyright (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994
    The Regents of the University of California. All rights reserved.
FreeBSD is a registered trademark of The FreeBSD Foundation.
FreeBSD 12.0-RELEASE-p3 GENERIC amd64
FreeBSD clang version 6.0.1 (tags/RELEASE_601/final 335540) (based on LLVM 6.0.1)
VT(vga): resolution 640x480
CPU: Intel(R) Core(TM)2 Duo CPU     E7300  @ 2.66GHz (2666.88-MHz K8-class CPU)
  Origin="GenuineIntel"  Id=0x10676  Family=0x6  Model=0x17  Stepping=6
  Features=0xbfebfbff<FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CLFLUSH,DTS,ACPI,MMX,FXSR,SSE,SSE2,SS,HTT,TM,PBE>
  Features2=0x8e39d<SSE3,DTES64,MON,DS_CPL,EST,TM2,SSSE3,CX16,xTPR,PDCM,SSE4.1>
  AMD Features=0x20100800<SYSCALL,NX,LM>
  AMD Features2=0x1<LAHF>
  TSC: P-state invariant, performance statistics
real memory  = 10737418240 (10240 MB)
avail memory = 10340970496 (9861 MB)
Event timer "LAPIC" quality 100
ACPI APIC Table: <Nvidia ASUSACPI>
FreeBSD/SMP: Multiprocessor System Detected: 2 CPUs
FreeBSD/SMP: 1 package(s) x 2 core(s)
random: unblocking device.
Firmware Warning (ACPI): 32/64X length mismatch in FADT/Pm1aEventBlock: 32/8 (20181003/tbfadt-748)
Firmware Warning (ACPI): 32/64X length mismatch in FADT/Pm1aControlBlock: 16/8 (20181003/tbfadt-748)
Firmware Warning (ACPI): 32/64X length mismatch in FADT/PmTimerBlock: 32/8 (20181003/tbfadt-748)
Firmware Warning (ACPI): 32/64X length mismatch in FADT/Gpe0Block: 64/8 (20181003/tbfadt-748)
Firmware Warning (ACPI): 32/64X length mismatch in FADT/Gpe1Block: 128/8 (20181003/tbfadt-748)
Firmware Warning (ACPI): Invalid length for FADT/Pm1aEventBlock: 8, using default 32 (20181003/tbfadt-850)
Firmware Warning (ACPI): Invalid length for FADT/Pm1aControlBlock: 8, using default 16 (20181003/tbfadt-850)
Firmware Warning (ACPI): Invalid length for FADT/PmTimerBlock: 8, using default 32 (20181003/tbfadt-850)
ioapic0: Changing APIC ID to 4
ioapic0 <Version 1.1> irqs 0-23 on motherboard
Launching APs: 1
Timecounter "TSC-low" frequency 1333439055 Hz quality 1000
random: entropy device external interface
netmap: loaded module
[ath_hal] loaded
module_register_init: MOD_LOAD (vesa, 0xffffffff810f9770, 0) error 19
kbd1 at kbdmux0
nexus0
vtvga0: <VT VGA driver> on motherboard
cryptosoft0: <software crypto> on motherboard
acpi0: <Nvidia ASUSACPI> on motherboard
acpi0: Power Button (fixed)
cpu0: <ACPI CPU> on acpi0
attimer0: <AT timer> port 0x40-0x43 on acpi0
Timecounter "i8254" frequency 1193182 Hz quality 0
attimer0: Can't map interrupt.
hpet0: <High Precision Event Timer> iomem 0xfeff0000-0xfeff03ff irq 0,8 on acpi0
Timecounter "HPET" frequency 25000000 Hz quality 950
atrtc0: <AT realtime clock> port 0x70-0x73 on acpi0
atrtc0: registered as a time-of-day clock, resolution 1.000000s
Event timer "RTC" frequency 32768 Hz quality 0
Timecounter "ACPI-fast" frequency 3579545 Hz quality 900
acpi_timer0: <24-bit timer at 3.579545MHz> port 0x4008-0x400b on acpi0
acpi_button0: <Power Button> on acpi0
pcib0: <ACPI Host-PCI bridge> port 0xcf8-0xcff on acpi0
pci0: <ACPI PCI bus> on pcib0
pci0: <memory, RAM> at device 0.1 (no driver attached)
pci0: <memory, RAM> at device 0.2 (no driver attached)
pci0: <memory, RAM> at device 0.3 (no driver attached)
pci0: <memory, RAM> at device 0.4 (no driver attached)
pci0: <memory, RAM> at device 1.0 (no driver attached)
pci0: <memory, RAM> at device 1.1 (no driver attached)
pci0: <memory, RAM> at device 1.2 (no driver attached)
pci0: <memory, RAM> at device 1.3 (no driver attached)
pci0: <memory, RAM> at device 1.4 (no driver attached)
pci0: <memory, RAM> at device 1.5 (no driver attached)
pci0: <memory, RAM> at device 1.6 (no driver attached)
pcib1: <ACPI PCI-PCI bridge> at device 2.0 on pci0
pci1: <ACPI PCI bus> on pcib1
vgapci0: <VGA-compatible display> port 0xa000-0xa07f mem 0xd2000000-0xd2ffffff,0xc0000000-0xcfffffff,0xd0000000-0xd1ffffff irq 16 at device 0.0 on pci1
nvidia0: <GeForce 8400 GS> on vgapci0
vgapci0: child nvidia0 requested pci_enable_io
vgapci0: child nvidia0 requested pci_enable_io
vgapci0: Boot video device
pcib2: <ACPI PCI-PCI bridge> at device 4.0 on pci0
pci2: <ACPI PCI bus> on pcib2
pcib3: <ACPI PCI-PCI bridge> at device 5.0 on pci0
pci3: <ACPI PCI bus> on pcib3
xhci0: <NEC uPD720202 USB 3.0 controller> mem 0xd4000000-0xd4001fff irq 16 at device 0.0 on pci3
xhci0: 64 bytes context size, 64-bit DMA
xhci0: Unable to map MSI-X table
usbus0 on xhci0
usbus0: 5.0Gbps Super Speed USB v3.0
pcib4: <ACPI PCI-PCI bridge> at device 6.0 on pci0
pci4: <ACPI PCI bus> on pcib4
pcib5: <ACPI PCI-PCI bridge> at device 7.0 on pci0
pci5: <ACPI PCI bus> on pcib5
pci0: <memory, RAM> at device 9.0 (no driver attached)
isab0: <PCI-ISA bridge> at device 10.0 on pci0
isa0: <ISA bus> on isab0
pci0: <memory, RAM> at device 10.2 (no driver attached)
ohci0: <OHCI (generic) USB controller> mem 0xd7006000-0xd7006fff irq 21 at device 11.0 on pci0
usbus1 on ohci0
usbus1: 12Mbps Full Speed USB v1.0
ehci0: <EHCI (generic) USB 2.0 controller> mem 0xd7007000-0xd70070ff irq 22 at device 11.1 on pci0
usbus2: EHCI version 1.0
usbus2 on ehci0
usbus2: 480Mbps High Speed USB v2.0
atapci0: <nVidia nForce MCP51 UDMA133 controller> port 0x1f0-0x1f7,0x3f6,0x170-0x177,0x376,0xf000-0xf00f at device 13.0 on pci0
ata0: <ATA channel> at channel 0 on atapci0
ata1: <ATA channel> at channel 1 on atapci0
atapci1: <nVidia nForce MCP51 SATA300 controller> port 0x9f0-0x9f7,0xbf0-0xbf3,0x970-0x977,0xb70-0xb73,0xd400-0xd40f mem 0xd7004000-0xd7004fff irq 23 at device 14.0 on pci0
ata2: <ATA channel> at channel 0 on atapci1
ata3: <ATA channel> at channel 1 on atapci1
atapci2: <nVidia nForce MCP51 SATA300 controller> port 0x9e0-0x9e7,0xbe0-0xbe3,0x960-0x967,0xb60-0xb63,0xe800-0xe80f mem 0xd7005000-0xd7005fff irq 20 at device 15.0 on pci0
ata4: <ATA channel> at channel 0 on atapci2
ata5: <ATA channel> at channel 1 on atapci2
pcib6: <ACPI PCI-PCI bridge> at device 16.0 on pci0
pci6: <ACPI PCI bus> on pcib6
re0: <RealTek 8169/8169S/8169SB(L)/8110S/8110SB(L) Gigabit Ethernet> port 0xb000-0xb0ff mem 0xd6004000-0xd60040ff irq 16 at device 6.0 on pci6
re0: Chip rev. 0x10000000
re0: MAC rev. 0x00000000
miibus0: <MII bus> on re0
rgephy0: <RTL8169S/8110S/8211 1000BASE-T media interface> PHY 1 on miibus0
rgephy0:  none, 10baseT, 10baseT-FDX, 10baseT-FDX-flow, 100baseTX, 100baseTX-FDX, 100baseTX-FDX-flow, 1000baseT, 1000baseT-master, 1000baseT-FDX, 1000baseT-FDX-master, 1000baseT-FDX-flow, 1000baseT-FDX-flow-master, auto, auto-flow
re0: Using defaults for TSO: 65518/35/2048
re0: Ethernet address: c0:4a:00:02:fb:dc
re0: netmap queues/slots: TX 1/256, RX 1/256
skc0: <Marvell Gigabit Ethernet> port 0xb400-0xb4ff mem 0xd6000000-0xd6003fff irq 18 at device 12.0 on pci6
skc0: Marvell Yukon Lite Gigabit Ethernet rev. (0x9)
sk0: <Marvell Semiconductor, Inc. Yukon> on skc0
sk0: Ethernet address: 00:1f:c6:df:15:72
miibus1: <MII bus> on sk0
e1000phy0: <Marvell 88E1011 Gigabit PHY> PHY 0 on miibus1
e1000phy0:  none, 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, 1000baseT, 1000baseT-master, 1000baseT-FDX, 1000baseT-FDX-master, auto
hdac0: <NVIDIA MCP51 HDA Controller> mem 0xd7000000-0xd7003fff irq 21 at device 16.1 on pci0
acpi_tz0: <Thermal Zone> on acpi0
fdc0: <floppy drive controller> port 0x3f0-0x3f5,0x3f7 irq 6 drq 2 on acpi0
uart0: <16550 or compatible> port 0x3f8-0x3ff irq 4 flags 0x10 on acpi0
ppc0: <Parallel port> port 0x3bc-0x3bf irq 7 on acpi0
ppc0: Generic chipset (NIBBLE-only) in COMPATIBLE mode
ppbus0: <Parallel port bus> on ppc0
lpt0: <Printer> on ppbus0
lpt0: Interrupt-driven port
ppi0: <Parallel I/O> on ppbus0
atkbdc0: <Keyboard controller (i8042)> port 0x60,0x64 irq 1 on acpi0
atkbd0: <AT Keyboard> irq 1 on atkbdc0
kbd0 at atkbd0
atkbd0: [GIANT-LOCKED]
orm0: <ISA Option ROMs> at iomem 0xd0000-0xd3fff,0xd4000-0xd57ff pnpid ORM0000 on isa0
est0: <Enhanced SpeedStep Frequency Control> on cpu0
ZFS filesystem version: 5
ZFS storage pool version: features support (5000)
Timecounters tick every 1.000 msec
hdacc0: <Analog Devices AD1986A HDA CODEC> at cad 0 on hdac0
hdaa0: <Analog Devices AD1986A Audio Function Group> at nid 1 on hdacc0
hdaa0: WARNING: nid=18 has zero cnid entnum=4 j=2 index=0 entries=8 found=2 res=0x21002211
pcm0: <Analog Devices AD1986A (Analog 2.0+HP/2.0)> at nid 27,26 and 28,29,31,32,34 on hdaa0
pcm1: <Analog Devices AD1986A (Rear Digital)> at nid 37 on hdaa0
ugen0.1: <0x1912 XHCI root HUB> at usbus0
ugen2.1: <nVidia EHCI root HUB> at usbus2
uhub0: <0x1912 XHCI root HUB, class 9/0, rev 3.00/1.00, addr 1> on usbus0
uhub1: <nVidia EHCI root HUB, class 9/0, rev 2.00/1.00, addr 1> on usbus2
ugen1.1: <nVidia OHCI root HUB> at usbus1
uhub2: <nVidia OHCI root HUB, class 9/0, rev 1.00/1.00, addr 1> on usbus1
uhub0: 4 ports with 4 removable, self powered
uhub2: 8 ports with 8 removable, self powered
ugen0.2: <Razer Razer Abyssus V2> at usbus0
ukbd0 on uhub0
ukbd0: <Razer Razer Abyssus V2, class 0/0, rev 2.00/2.00, addr 1> on usbus0
kbd2 at ukbd0
ukbd1 on uhub0
ukbd1: <Razer Razer Abyssus V2, class 0/0, rev 2.00/2.00, addr 1> on usbus0
kbd3 at ukbd1
ugen0.3: <Razer Razer BlackWidow> at usbus0
ukbd2 on uhub0
ukbd2: <Razer Razer BlackWidow, class 0/0, rev 2.00/2.00, addr 2> on usbus0
kbd4 at ukbd2
ukbd3 on uhub0
ukbd3: <Razer Razer BlackWidow, class 0/0, rev 2.00/2.00, addr 2> on usbus0
kbd5 at ukbd3
ada0 at ata3 bus 0 scbus3 target 0 lun 0
ada0: <ST1000DM003-1ER162 CC45> ACS-2 ATA SATA 3.x device
ada0: Serial Number <CUT>
ada0: 300.000MB/s transfers (SATA 2.x, PIO4, PIO 8192bytes)
ada0: 953869MB (1953525168 512 byte sectors)
ada0: quirks=0x1<4K>
ada1 at ata4 bus 0 scbus4 target 0 lun 0
ada1: <HITACHI HDS7225SBSUN250G <CUT> V44OA9CA> ATA-7 SATA 2.x device
ada1: Serial Number <CUT>
ada1: 300.000MB/s transfers (SATA 2.x, PIO4, PIO 8192bytes)
ada1: 238471MB (488390625 512 byte sectors)
ada2 at ata5 bus 0 scbus5 target 0 lun 0
ada2: <ST31000524AS JC45> ATA8-ACS SATA 3.x device
ada2: Serial Number <CUT>
ada2: 300.000MB/s transfers (SATA 2.x, PIO4, PIO 8192bytes)
ada2: 953869MB (1953525168 512 byte sectors)
cd0 at ata0 bus 0 scbus0 target 1 lun 0
cd0: <PIONEER DVD-RW  DVR-109 1.40> Removable CD-ROM SCSI device
cd0: Serial Number <CUT>
cd0: 66.700MB/s transfers (UDMA4, ATAPI 12bytes, PIO 65534bytes)
cd0: Attempt to query device size failed: NOT READY, Medium not present
Trying to mount root from zfs:zroot/ROOT/default []...
GEOM: ada2: the secondary GPT header is not in the last LBA.
Root mount waiting for: usbus2
uhub1: 8 ports with 8 removable, self powered
GEOM_PART: Partition 'ada0p2' not suitable for kernel dumps (wrong type?)
WARNING: reducing swap size to maximum of 262144MB per unit
warning: total configured swap (67108864 pages) exceeds maximum recommended amount (10139096 pages).
warning: increase kern.maxswzone or reduce amount of swap.
lo0: link state changed to UP
re0: link state changed to DOWN
re0: link state changed to UP
sk0: link state changed to DOWN
ums0 on uhub0
ums0: <Razer Razer Abyssus V2, class 0/0, rev 2.00/2.00, addr 1> on usbus0
ums0: 5 buttons and [XYZ] coordinates ID=0
ums1 on uhub0
ums1: <Razer Razer BlackWidow, class 0/0, rev 2.00/2.00, addr 2> on usbus0
ums1: 3 buttons and [XYZ] coordinates ID=0
vboxdrv: fAsync=0 offMin=0x442 offMax=0x1004
Security policy loaded: MAC/ntpd (mac_ntpd)
```

`camcontrol devlist`

```
<PIONEER DVD-RW  DVR-109 1.40>     at scbus0 target 1 lun 0 (cd0,pass0)
<ST1000DM003-1ER162 CC45>          at scbus3 target 0 lun 0 (pass1,ada0)
<HITACHI HDS7225SBSUN250G <CUT>V44OA9CA>  at scbus4 target 0 lun 0 (pass2,ada1)
<ST31000524AS JC45>                at scbus5 target 0 lun 0 (pass3,ada2)
```

`pciconf -lvc`

```
<snip>
atapci0@pci0:0:13:0:    class=0x01018a card=0x81bc1043 chip=0x026510de rev=0xa1 hdr=0x00
    vendor     = 'NVIDIA Corporation'
    device     = 'MCP51 IDE'
    class      = mass storage
    subclass   = ATA
    cap 01[44] = powerspec 2  supports D0 D3  current D0
atapci1@pci0:0:14:0:    class=0x010185 card=0x81bc1043 chip=0x026610de rev=0xa1 hdr=0x00
    vendor     = 'NVIDIA Corporation'
    device     = 'MCP51 Serial ATA Controller'
    class      = mass storage
    subclass   = ATA
    cap 01[44] = powerspec 2  supports D0 D3  current D0
    cap 05[b0] = MSI supports 4 messages, 64 bit
    cap 08[cc] = HT MSI fixed address window disabled at 0xfee00000
atapci2@pci0:0:15:0:    class=0x010185 card=0x81bc1043 chip=0x026710de rev=0xa1 hdr=0x00
    vendor     = 'NVIDIA Corporation'
    device     = 'MCP51 Serial ATA Controller'
    class      = mass storage
    subclass   = ATA
    cap 01[44] = powerspec 2  supports D0 D3  current D0
    cap 05[b0] = MSI supports 4 messages, 64 bit
    cap 08[cc] = HT MSI fixed address window disabled at 0xfee00000
</snip>
```


Example disk
`sudo camcontrol identify ada0`

```
pass1: <ST1000DM003-1ER162 CC45> ACS-2 ATA SATA 3.x device
pass1: 300.000MB/s transfers (SATA 2.x, PIO4, PIO 8192bytes)

protocol              ATA/ATAPI-9 SATA 3.x
device model          ST1000DM003-1ER162
firmware revision     CC45
serial number         <snip>
WWN                   5000c5007abd72b7
cylinders             16383
heads                 16
sectors/track         63
sector size           logical 512, physical 4096, offset 0
LBA supported         268435455 sectors
LBA48 supported       1953525168 sectors
PIO supported         PIO4
DMA supported         WDMA2 UDMA6
media RPM             7200
Zoned-Device Commands no

Feature                      Support  Enabled   Value           Vendor
read ahead                     yes    yes
write cache                    yes    yes
flush cache                    yes    yes
overlap                        no
Tagged Command Queuing (TCQ)   no    no
Native Command Queuing (NCQ)   yes        32 tags
NCQ Queue Management           no
NCQ Streaming                  no
Receive & Send FPDMA Queued    no
SMART                          yes    yes
microcode download             yes    yes
security                       yes    no
power management               yes    yes
advanced power management      yes    yes    128/0x80
automatic acoustic management  no    no
media status notification      no    no
power-up in Standby            yes    no
write-read-verify              yes    no    0/0x0
unload                         no    no
general purpose logging        yes    yes
free-fall                      no    no
Data Set Management (DSM/TRIM) no
Host Protected Area (HPA)      yes      no      1953525168/1953525168
HPA - Security                 no
```


----------



## bjs (Feb 25, 2019)

Try a different SATA cable or a different SATA port on the motherboard or both...


----------



## buddy (Feb 25, 2019)

Morning Bjs,
This has impacted three HDD's using three cables on three different SATA ports. Note that I get two disks detached in above /var/log/messages


----------



## olli@ (Feb 26, 2019)

I have a similar problem with a SATA300 controller on an MSI mainboard that's several years old (the BIOS date is 2007). It results in timeouts when the default settings are used: SATA-II (3 Gbps) and 32 NCQ tags. The timeouts are gone when _either_ the link is reduced to SATA-I (1.5 Gbps), _or_ the NCQ tags are reduced to 2. But it's not necessary to do both. Note that I'm using AHCI, not ATA, though.

Reducing the SATA link to SATA-I can be done via /boot/loader.conf. For example, to force the first two channels to SATA-I:

```
hint.ahcich.0.sata_rev=1
hint.ahcich.1.sata_rev=1
```
Reducing the NCQ tags can be done with a small rc(8) script, e.g. /etc/rc.d/local-ncq-fix:

```
#!/bin/sh

# PROVIDE: local_ncq_fix
# BEFORE: fsck

/sbin/camcontrol tags ada0 -N 2
/sbin/camcontrol tags ada1 -N 2
```

I experimented a bit with both solutions workarounds using typical workload on that machine, and I found out that it's better – performance-wise – to reduce the SATA link to 1.5 Gbps, but keep the NCQ tags at 32. So that's what I did. YMMV.


----------



## buddy (Feb 27, 2019)

Thanks for the solid suggestion,

I've reduced all disks to SATA version 1 (_hint.ata.X.sata_rev_) and while obviously slower it seems stable.

I'll do some tests and respond with what seems to work best for the archives.

Cheers


----------

