id summary reporter owner description type status priority milestone component version resolution keywords cc 657 Add NVMe support to the smartmontools Alex Samorukov "== About It would be great to add NVMe support to the smartctl. This task is not very trivial - because smart in NVMe is implemented differently then in SCSI/SAS or SATA. This ticket will be used to track changes in smartmontools and to collect important related links. == NVMe standard and vendor specific log pages - Official specifications: http://nvmexpress.org/specifications/ - [http://www.intel.com/content/dam/www/public/us/en/documents/product-specifications/ssd-dc-p3608-spec.pdf Intel NVMe documentation] with Intel-specific log pages (CAh, C5h, DDh, C1h/C2h). - [http://ocz.com/enterprise/download/guides/ZDrive_6000_Series_Datasheet.pdf OCZ Z-Drive] specification, with vendor-specific smart log page (E0h) == Hardware and emulation - [https://github.com/OpenChannelSSD/qemu-nvme/ QEMU fork] which can emulates NVMe device with most of the features supported, including SMART log pages, namespaces, etc. Tested with Linux and FreeBSD, full list of the options could be found in the [https://github.com/OpenChannelSSD/qemu-nvme/blob/master/hw/block/nvme.c source code]. == Linux NVMe support - NVMe kernel header [http://lxr.free-electrons.com/source/include/linux/nvme.h linux/nvme.h] - [https://github.com/linux-nvme/nvme-cli nvme-cli] - NVM-Express user space tooling for Linux - [https://github.com/xnox/nvme-user nvme-user] - another opensource userspace utility == FreeBSD NVMe support - NVMe kernel header [http://fxr.watson.org/fxr/source/dev/nvme/nvme.h dev/nvme/nvme.h] - [https://www.freebsd.org/cgi/man.cgi?query=nvmecontrol nvmecontrol] utility, [https://github.com/freebsd/freebsd/tree/master/sbin/nvmecontrol opensource]. == Windows NVMe support - [https://svn.openfabrics.org/svnrepo/nvmewin/ OpenFabrics NVMe driver] for Windows. It provides a NVME_PASS_THROUGH I/O-control which is reportedly also supported by the NVMe Windows drivers from Intel and OCZ. - [https://msdn.microsoft.com/en-us/library/windows/hardware/dn932068.aspx IOCTL_STORAGE_PROTOCOL_COMMAND] - NVMe pass-through I/O-control supported by the generic NVMe driver for Windows (Stornvme.sys). Requires Windows 10. - [http://naraeon.net/en/latest-naraeon-ssd-tools/ Naraeon SSD tools] windows opensource NVMe tool set - Intel® [https://downloadcenter.intel.com/download/23931/Intel-Solid-State-Drive-Data-Center-Tool Solid-State Drive Data Center Tool] == OS X NVMe support - Kind of official support added from 10.10.3, closes source, not documented, only apple-branded NVMe devices are supported. Implements NVMeSMARTClient library, however API is not documented. - [http://www.macvidcards.com/nvme-driver1.html MacVidCards NVMe driver] - third party closed-source driver, coming with closed-source nvme-cli management utility, which is based on open-source one. == Solaris NVMe support - [https://docs.oracle.com/cd/E36784_01/html/E36871/nvmeadm-1m.html nvmeadm] - NVM Express controller command line interface " task new major unscheduled all nvme