Project

General

Profile

Bug #8631

only 16 NVMe controllers usable per system due to 18bit minor number limit

Added by Hans Rosenfeld over 3 years ago. Updated over 3 years ago.

Status:
Closed
Priority:
Normal
Category:
driver - device drivers
Start date:
2017-09-07
Due date:
% Done:

100%

Estimated time:
Difficulty:
Bite-size
Tags:
needs-triage
Gerrit CR:

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.

#1

Updated by Hans Rosenfeld over 3 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.

#2

Updated by Electric Monk over 3 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>

Also available in: Atom PDF