Page MenuHomeFreeBSD

2023Q2 status report for NVMe over Fabrics

Authored by jhb on Jun 28 2023, 9:31 PM.
Referenced Files
Unknown Object (File)
Oct 31 2023, 10:36 PM
Unknown Object (File)
Oct 9 2023, 1:10 PM
Unknown Object (File)
Oct 9 2023, 1:10 PM
Unknown Object (File)
Sep 29 2023, 10:35 PM
Unknown Object (File)
Sep 6 2023, 8:55 AM
Unknown Object (File)
Aug 15 2023, 2:24 AM
Unknown Object (File)
Aug 15 2023, 12:47 AM
Unknown Object (File)
Aug 12 2023, 6:17 PM

Diff Detail

R9 FreeBSD doc repository
Lint Not Applicable
Tests Not Applicable

Event Timeline

jhb requested review of this revision.Jun 28 2023, 9:31 PM

In addition to the line edits, could you rewrap this so each sentence is on a single line of its own?


For consistency with other reports.


Is it FibreChannel or Fibre Channel? (Wikipedia thinks the latter.)


I forget: do we still mark up filenames and pathnames? @carlavilla, I think you mentioned that changing?


Use man:nvme[4], and likewise for nvmf and nvd. Also, what's a SIM here?


Add a final newline while here?

This revision now requires changes to proceed.Jun 29 2023, 7:31 PM

Thanks to @jhb for the report and to for the review.


I let @carlavilla reply to this, but if he confirms that we still markup filnames and pathnames, please add the markup.


One more man macro here: man:nvmf[4].


Please avoid contractions:
s/don't/do not/


I am unsure I understand this comment. Why do you recommend a final new line? Do we usually have one?

jhb marked 9 inline comments as done.Jun 30 2023, 4:32 PM
jhb added inline comments.

nvmf(4) doesn't exist since it's not in the tree, so that would be a dead link (and even in the branch I don't yet have a nvmf(4)). Do you still want the markup for a link that will be dead?

In CAM, a peripheral is a driver for a individual storage device like daX for a SCSI disk, adaX for a SATA disk, or ndaX for an NVMe namespace. A SIM is a driver for a storage controller that has a collection of peripheral devices. So for a driver like mpt(4), it uses a SIM as the "glue" between mpt(4) and the rest of CAM. A similar analog for a network driver would be something like 'struct ifnet' which serves as the abstraction that individual NIC drivers use to export logical network interfaces to the network stack. The role of a SIM is described in a bit more detail in cam(4) which gives a general overview of the CAM subsystem. Part of the reason I'm using specific language here is that nvme(4) is an unusual driver in that it can export disks in two different ways: nvd(4) is a NVMe-specific disk device that attaches directly to nvme(4) instances and was imported with the original nvme(4) driver. Later a CAM SIM was added to support NVMe namespaces, and nvme(4) has a tunable to let you choose whether namespaces are exposed as either nvdX devices or ndaX devices. Note that this tunable's default has been changed to default to ndaX for 14.0. nvmf(4) is only going to provide ndaX and does not support nvdX at all. If it weren't for this odd situation with nvme(4) supporting two different modes (which no other storage driver in the tree does BTW), I wouldn't be mentioning this at all. That said, the previous two sentences are probably good enough and I can drop the mention of a SIM I guess. The SIM detail matters more to other SCSI developers, it is less relevant to non-developers.


It's related to the comment at the bottom of the file ("No newline at end of file"), somehow I ended up without a newline at the end (which is definitely unusual).

jhb marked an inline comment as done.

Various review feedback fixes

I approve. But there is still the issue of the filename markup, so please allow a bit more time for @carlavilla to reply to this.


I would add the markup even if the link is dead. The formatting would be more consistent and, if I understood correctly, the manpage will exist in the future.

But it is not a requirement: if you believe that avoiding the link is better feel free to avoid it.

In files we use [.filename]#/etc#

jhb marked 2 inline comments as done.Jul 5 2023, 5:20 PM
This revision is now accepted and ready to land.Jul 5 2023, 6:21 PM
This revision was automatically updated to reflect the committed changes.