NVME(4D) 4D NVME(4D)

NAME


nvme - Intel NVMe compliant storage driver

DESCRIPTION


The nvme driver uses the blkdev(4D) framework to provide access to NVMe
compliant solid-state storage devices. All NVMe version 1.x devices are
supported.

NVMe devices supporting multiple namespaces will present each namespace as
its own blkdev(4D) instance in the system.

CONFIGURATION


The nvme driver can be configured by defining properties in the nvme.conf
file. The parameters are considered an unstable interface, subject to
change without notice. The following properties are currently supported:

strict-version
This can be set to 0 to allow nvme to attach to devices
supporting newer version of the NVMe specification. The
default value is 1, limiting nvme to work with devices that
support major version 1.

ignore-unknown-vendor-status
This can be set to 1 to allow nvme to continue operating even
if it receives an unknown vendor command status.

admin-queue-len
This is the number of entries in the admin command queue.
Legal values are between 16 and 4096, the default value is
256.

io-squeue-len
This is the number of entries in each I/O submission queue.
Legal values are between 16 and 65536, the default value is
1024.

io-cqueue-len
This is the number of entries in each I/O completion queue.
Legal values are between 16 and 65536, the default value is
2048. When the number of submission and completion queues
are the same, the queue lengths will be both set to the
lesser of io-squeue-len and io-cqueue-len.

async-event-limit
This is the maximum number of asynchronous event requests
issued by the driver. Asynchronous events are used to report
error conditions. The driver will never use more
asynchronous events than this value, or what the hardware
supports if it is less, or 1/10th of the admin queue length
if it is less.

volatile-write-cache-enable
This property can be set to 0 to disable the volatile write
cache, if the hardware supports it. The default setting is
1, which enables the volatile write cache.

min-phys-block-size
This is the minimum physical block size that is reported to
blkdev(4D). This value must be a power of 2 greater than or
equal to 512. If the device reports a best block size larger
than what is specified here the driver will ignore the value
specified here.

max-submission-queues
This is the maximum number of submission queues the driver
will create per device. Legal values are between 1 and
65535, the default is to match the number for
max-completion-queues. The number of queues created will not
be allowed to exceed the drive's hardware limitation. If the
number of submission queues is larger than
max-completion-queues the completion queues will be shared
across the submission queues.

max-completion-queues
This is the maximum number of completion queues the driver
will create per device. Legal values are between 1 and
65535, the default is to match the number of interrupt
vectors allocated to the drive. The number of queues created
will not exceed the number of interrupt vectors,
max-submission-queues, or the drive's hardware limitation.

FILES


/dev/dsk/cntnd0sn Block device minor nodes.
/dev/rdsk/cntnd0sn Raw block device minor nodes.

In the device minor nodes, the following substitutions may occur:

cn A controller number, typically one for each nvme device
found. Controller numbers are dynamically assigned by
the system.

tn The target number. This is the namespace EUI64 if
available, or the namespace ID used by the hardware.
Namespace ID 0 is reserved, hence target numbers start
with 1.

sn This is the slice number, representing a subset of the
disk. See dkio(4I).

SEE ALSO


blkdev(4D)

OmniOS January 22, 2022 OmniOS