Bug #8631
closedonly 16 NVMe controllers usable per system due to 18bit minor number limit
100%
Description
Due to the 18bit minor number limit (#8630) the NVMe driver will fail to create minor nodes for devices beyond instance 16. This is due to NVME_MINOR_INST_SHIFT being defined as 14, which was supposed to allow 16k namespaces and 256k NVMe devices in a system but didn't take the 18bit limit into account.
An easy solution for now is to change NVME_MINOR_INST_SHIFT to 9, allowing up to 512 devices with 512 namespaces each. As devices with 128 namespaces are already being sold this seems like a reasonable comprise for now.
Updated by Hans Rosenfeld about 6 years ago
Webrev: https://grumpf.hope-2000.org/illumos-8631/
Testing: I've verified that the device nodes in devfs have the expected minor number with the modified driver. nvmeadm(1M) still works as expected.
This change has been in illumos-joyent since August.
Updated by Electric Monk about 6 years ago
- Status changed from New to Closed
- % Done changed from 0 to 100
git commit dc97a43d4a70c8773a619f11b95b07a787f6f5b7
commit dc97a43d4a70c8773a619f11b95b07a787f6f5b7 Author: Hans Rosenfeld <hans.rosenfeld@joyent.com> Date: 2017-09-12T14:59:24.000Z 8631 only 16 NVMe controllers usable per system due to 18bit minor number limit Reviewed by: Robert Mustacchi <rm@joyent.com> Reviewed by: Patrick Mooney <patrick.mooney@joyent.com> Reviewed by: Yuri Pankov <yuripv@gmx.com> Reviewed by: Toomas Soome <tsoome@me.com> Approved by: Richard Lowe <richlowe@richlowe.net>