NVMe OpCodes and Status Definitions
search cancel

NVMe OpCodes and Status Definitions

book

Article ID: 390259

calendar_today

Updated On:

Products

VMware vSphere ESXi

Issue/Introduction

ESXi leveraging NVMe storage may encounter conditions leading to sub-optimal storage communication.  A review of vmkernel.log may uncover NVMe errors.  Example:

 

YYYY-MM-DDThh:mm:ss.###Z Wa(180) vmkwarning: cpu188:2098584)WARNING: NVMEIO:2644 command 0x45bd4063c080 failed: ctlr 262, queue 3, psaCmd 0x45bdc63a6b00, status 0x371, opc 0x2, cid 180, nsid 261

 

opc = 0x2

status = 0x371

 

Translation for this example: A read (0x2) command was aborted (0x371) by the host.

Environment

VMware ESXi 7.0.x

VMware ESXi 8.0.x

Cause

Various factors such as ESXi configuration, physical storage fabric, and storage array need to be reviewed to isolate the source of storage interruption.  The OPCODE and STATUS tables below provide for translation of NVMe errors found in vmkernel.log.  Collaboration with the storage vendor may be needed as detailed translation of the NVMe errors may need vendor-side context to fully interpret.

Resolution

OPCODE DESCRIPTION
0x0 Brief Flush
0x1 Brief Write
0x2 Brief Read
0x4 Brief Write Uncorrectable
0x5 Brief Compare
0x8 Brief Write Zeros
0x9 Brief Dataset Management
0xd Brief Reservation Register
0xe Brief Reservation Report
0x11 Brief Reservation Acquire
0x15 Brief Reservation Release
0x19 Brief Copy

 

 

STATUS DESCRIPTION
0x4 Brief Data Transfer Error
0x6 Brief Command Abort Requested
0xb Brief Invalid Namespace or Format
0x12 Brief Invalid Use of Controller Memory Buffer
0x19 Brief Keep Alive Timeout Expired
0x22 Brief Transient Transport Error
0x80 Brief LBA Out of Range
0x82 Brief Namespace Not Ready
0x11b Brief Thin Provisioning Not Supported
0x182 Brief Attempted Write to Read Only Range
0x189 Brief Insufficient Resources
0x280 Brief Write Fault
0x281 Brief Unrecovered Read Error
0x285 Brief Compare Failure
0x286 Brief Access Denied
0x300 Brief Internal Path Error
0x371 Brief Command Aborted by Host
0x807 Brief Queue is Full
0x808 Brief Device is Busy
0x80a Brief Command Timed Out

 

The above tables are not a comprehensive list of all the codes, but the most common seen. If you don't see the code listed seen in vmkernel.log, open a case with VMware by Broadcom for further assistance.