Consumer SSD listing namespace as nvme0c0n1 instead of nvme0n1 in /sys/class/ ?

Christoph Hellwig hch at infradead.org
Thu Dec 15 23:18:48 PST 2022


On Thu, Dec 15, 2022 at 03:27:59PM -0600, Nick Neumann wrote:
> Is the way this device is presenting itself
> incorrect, or is it just an uncommon way of doing things?

Not really incorrect, but unusual and probably suboptimal.  The
multi-pathing is enabled if the device sets the bits that it might
have multiple controllers (i.e.g multiple PCIe ports) and that the
namespace is a shared namespace that could be accessed by multiple
controllers.  If this is a m.2 device and doesn't support SR-IOV
none of the above can practically happen.  But there's nothin in
the spec prohibiting it from setting these bits.  And once the bits
are set Linux uses the multi-pathing code to be prepared for the other
controller (path) to show up.

The only downside for you is that there is a bit more overhead in the
I/O path.  The overhead is not a lot and should not practically matter
for a flash based device.



More information about the Linux-nvme mailing list