freebsd-dev/sys/dev/nvme
Jim Harris 50dea2da12 nvme: add hw.nvme.min_cpus_per_ioq tunable
Due to FreeBSD system-wide limits on number of MSI-X vectors
(https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=199321),
it may be desirable to allocate fewer than the maximum number
of vectors for an NVMe device, in order to save vectors for
other devices (usually Ethernet) that can take better
advantage of them and may be probed after NVMe.

This tunable is expressed in terms of minimum number of CPUs
per I/O queue instead of max number of queues per controller,
to allow for a more even distribution of CPUs per queue.  This
avoids cases where some number of CPUs have a dedicated queue,
but other CPUs need to share queues.  Ideally the PR referenced
above will eventually be fixed and the mechanism implemented
here becomes obsolete anyways.

While here, fix a bug in the CPUs per I/O queue calculation to
properly account for the admin queue's MSI-X vector.

Reviewed by:	gallatin
MFC after:	3 days
Sponsored by:	Intel
2016-01-07 20:32:04 +00:00
..
nvme_ctrlr_cmd.c Use bitwise OR instead of logical OR when constructing value for 2014-06-10 21:40:43 +00:00
nvme_ctrlr.c nvme: add hw.nvme.min_cpus_per_ioq tunable 2016-01-07 20:32:04 +00:00
nvme_ns_cmd.c Fix nvme(4) and nvd(4) to support non 512-byte sector sizes. 2013-07-19 21:33:24 +00:00
nvme_ns.c Limit stripesize reported from nvd(4) to 4K 2015-12-11 02:06:03 +00:00
nvme_private.h nvme: do not revert o single I/O queue when per-CPU queues not possible 2016-01-07 16:18:32 +00:00
nvme_qpair.c nvme: do not pre-allocate MSI-X IRQ resources 2016-01-07 16:11:31 +00:00
nvme_sysctl.c nvme: add hw.nvme.min_cpus_per_ioq tunable 2016-01-07 20:32:04 +00:00
nvme_test.c Extend some 32-bit fields and variables to 64-bit to prevent overflow 2013-10-08 15:47:22 +00:00
nvme_util.c Add message when nvd disks are attached and detached. 2013-07-19 21:40:57 +00:00
nvme.c nvme: do not revert o single I/O queue when per-CPU queues not possible 2016-01-07 16:18:32 +00:00
nvme.h Limit stripesize reported from nvd(4) to 4K 2015-12-11 02:06:03 +00:00