nvme driver should attach to all NVMe 1.x devices
Currently the NVMe driver only attaches to devices based on the version that the driver knows that it understands for certain. In particular, this is NVMe 1.2 today. Per Hans Rosenfeld this was originally put in place because we weren't sure about how the NVMe spec would evolve and what else would happen.
However, as we're looking at NVMe 1.3 and more, we can pretty safely conclude that the way things are being added is in a backwards compatible manor and that we should probably default to attaching to such devices. This changes the strict version check to only care about the major version, but allow through the minor versions.
To test this I booted up systems that had a combination of the following NVMe devices:
- Samsung Consumer devices 950 Pro (1.1) and 970 EVO (1.3)
- Samsung SM963 (1.2)
- Intel P3700 (1.0)
- Intel P4600 (1.2)
I did basic I/O tests and used nvmeadm on these devices and verified that ZFS scrubbed all the data as clean. The only issue that was encountered was 9846 which occurred regardless of whether these changes were present or not.
Updated by Electric Monk about 5 years ago
- Status changed from New to Closed
commit 48d370f1e98a10b1bdf160dd83a49e0f49f6c1b7 Author: Robert Mustacchi <firstname.lastname@example.org> Date: 2018-09-22T20:16:33.000Z 9809 nvme driver should attach to all NVMe 1.x devices 9810 Update parts of NVMe headers for newer specs 9811 nvmeadm(1M) should have ctf Reviewed by: Hans Rosenfeld <email@example.com> Reviewed by: Jerry Jelinek <firstname.lastname@example.org> Reviewed by: Yuri Pankov <email@example.com> Reviewed by: Richard Lowe <firstname.lastname@example.org> Reviewed by: Andy Fiddaman <email@example.com> Approved by: Dan McDonald <firstname.lastname@example.org>