1.\" 2.\" This file and its contents are supplied under the terms of the 3.\" Common Development and Distribution License ("CDDL"), version 1.0. 4.\" You may only use this file in accordance with the terms of version 5.\" 1.0 of the CDDL. 6.\" 7.\" A full copy of the text of the CDDL should have accompanied this 8.\" source. A copy of the CDDL is also available via the Internet at 9.\" http://www.illumos.org/license/CDDL. 10.\" 11.\" 12.\" Copyright 2016 Nexenta Systems, Inc. All rights reserved. 13.\" Copyright (c) 2018, Joyent, Inc. 14.\" Copyright 2019, Western Digital Corporation 15.\" 16.Dd January 22, 2022 17.Dt NVME 4D 18.Os 19.Sh NAME 20.Nm nvme 21.Nd Intel NVMe compliant storage driver 22.Sh DESCRIPTION 23The 24.Nm 25driver uses the 26.Xr blkdev 4D 27framework to provide access to 28NVMe compliant solid-state storage devices. 29All NVMe version 1.x devices are supported. 30.Lp 31NVMe devices supporting multiple namespaces will present each 32namespace as its own 33.Xr blkdev 4D 34instance in the system. 35. 36.Sh CONFIGURATION 37The 38.Nm 39driver can be configured by defining properties in the 40.Pa nvme.conf 41file. 42The parameters are considered an unstable interface, subject to 43change without notice. 44The following properties are currently supported: 45.Bl -tag -width Va 46.It Va strict-version 47This can be set to 0 to allow 48.Nm 49to attach to devices supporting newer version of the NVMe 50specification. 51The default value is 1, limiting 52.Nm 53to work with devices that support major version 1. 54.It Va ignore-unknown-vendor-status 55This can be set to 1 to allow 56.Nm 57to continue operating even if it receives an unknown vendor command 58status. 59.It Va admin-queue-len 60This is the number of entries in the admin command queue. 61Legal values are between 16 and 4096, the default value is 256. 62.It Va io-squeue-len 63This is the number of entries in each I/O submission queue. 64Legal values are between 16 and 65536, the default value is 1024. 65.It Va io-cqueue-len 66This is the number of entries in each I/O completion queue. 67Legal values are between 16 and 65536, the default value is 2048. 68When the number of submission and completion queues are the same, 69the queue lengths will be both set to the lesser of 70.Va io-squeue-len 71and 72.Va io-cqueue-len . 73.It Va async-event-limit 74This is the maximum number of asynchronous event requests issued by 75the driver. 76Asynchronous events are used to report error conditions. 77The driver will never use more asynchronous events than this value, or 78what the hardware supports if it is less, or 1/10th of the admin queue 79length if it is less. 80.It Va volatile-write-cache-enable 81This property can be set to 0 to disable the volatile write cache, if 82the hardware supports it. 83The default setting is 1, which enables the volatile write cache. 84.It Va min-phys-block-size 85This is the minimum physical block size that is reported to 86.Xr blkdev 4D . 87This value must be a power of 2 greater than or equal to 512. 88If the device reports a best block size larger than what is 89specified here the driver will ignore the value specified here. 90.It Va max-submission-queues 91This is the maximum number of submission queues the driver will create per 92device. 93Legal values are between 1 and 65535, the default is to 94match the number for 95.Em max-completion-queues . 96The number of queues created will not be allowed to exceed the 97drive's hardware limitation. 98If the number of submission queues is larger than 99.Em max-completion-queues 100the completion queues will be shared across the submission 101queues. 102.It Va max-completion-queues 103This is the maximum number of completion queues the driver will create per 104device. 105Legal values are between 1 and 65535, the default is to match 106the number of interrupt vectors allocated to the drive. 107The number of queues created will not exceed the number of interrupt vectors, 108.Em max-submission-queues , 109or the drive's hardware limitation. 110.El 111. 112.Sh FILES 113.Bl -tag -compact -width Pa 114.It Pa /dev/dsk/cntnd0sn 115Block device minor nodes. 116.It Pa /dev/rdsk/cntnd0sn 117Raw block device minor nodes. 118.El 119.Lp 120In the device minor nodes, the following substitutions may occur: 121.Bl -tag -offset indent -width Va 122.It Va cn 123A controller number, typically one for each 124.Nm 125device found. 126Controller numbers are dynamically assigned by the system. 127.It Va tn 128The target number. 129This is the namespace EUI64 if available, or the namespace ID used by 130the hardware. 131Namespace ID 0 is reserved, hence target numbers start with 1. 132.It Va sn 133This is the 134.Em slice 135number, representing a subset of the disk. 136See 137.Xr dkio 4I . 138.El 139. 140.Sh SEE ALSO 141.Xr blkdev 4D 142