June 21, 2017

VMWare AHCI Driver Woes

After moving to a new ESXi host I started seeing a number of AHCI sense errors in the ESXi system log – turns out the VMWare-provided AHCI driver (vmw_ahci) either doesn’t play nicely with the AHCI controller in this machine (TYAN S7012 with an Intel ICH10 6 port SATA/AHCI controller) or is just broken in general. I discovered that you can disable the built-in VMWare AHCI kernel module in favor of the native sata-ahci and there are two benefits to this in my case: errors go away, and throughput goes way up.

To disable the vmw_ahci kernel module issue the following command:

esxcli system module set --module="vmw_ahci" --enabled=false

Here are the relevant errors that I saw in the system log

2017-06-21T17:02:11.687Z cpu1:66241)NMP: nmp_ThrottleLogForDevice:3546: last error status from device t10.ATA_____KINGSTON_SV300S37A120G__________________50026B766B01DC92____ repeated 10 times
2017-06-21T17:02:11.688Z cpu1:66241)WARNING: NMP: nmp_DeviceRequestFastDeviceProbe:237: NMP device "t10.ATA_____KINGSTON_SV300S37A120G__________________50026B766B01DC92____" state in doubt; requested fast path state update...
2017-06-21T17:02:11.842Z cpu1:65578)NMP: nmp_ThrottleLogForDevice:3546: last error status from device t10.ATA_____KINGSTON_SV300S37A120G__________________50026B766B01DC92____ repeated 20 times
2017-06-21T17:02:12.153Z cpu1:65578)NMP: nmp_ThrottleLogForDevice:3546: last error status from device t10.ATA_____KINGSTON_SV300S37A120G__________________50026B766B01DC92____ repeated 40 times
2017-06-21T17:02:12.731Z cpu3:65580)NMP: nmp_ThrottleLogForDevice:3546: last error status from device t10.ATA_____KINGSTON_SV300S37A120G__________________50026B766B01DC92____ repeated 80 times
2017-06-21T17:02:13.345Z cpu3:65580)ScsiDeviceIO: 2927: Cmd(0x439500e5bb00) 0x2a, CmdSN 0x712 from world 65567 to dev "t10.ATA_____KINGSTON_SV300S37A120G__________________50026B766B01DC92____" failed H:0x2 D:0x0 P:0x0 Invalid sense data: 0x0 0x0 0x0.
2017-06-21T17:02:13.417Z cpu3:65580)ScsiDeviceIO: 2927: Cmd(0x439500e5da80) 0x2a, CmdSN 0x713 from world 65567 to dev "t10.ATA_____KINGSTON_SV300S37A120G__________________50026B766B01DC92____" failed H:0x2 D:0x0 P:0x0 Invalid sense data: 0x0 0x0 0x0.