freebsd-dev/sys/dev/nvme
Alexander Motin 1eab19cbec Make nvme(4) driver some more NUMA aware.
- For each queue pair precalculate CPU and domain it is bound to.
If queue pairs are not per-CPU, then use the domain of the device.
 - Allocate most of queue pair memory from the domain it is bound to.
 - Bind callouts to the same CPUs as queue pair to avoid migrations.
 - Do not assign queue pairs to each SMT thread.  It just wasted
resources and increased lock congestions.
 - Remove fixed multiplier of CPUs per queue pair, spread them even.
This allows to use more queue pairs in some hardware configurations.
 - If queue pair serves multiple CPUs, bind different NVMe devices to
different CPUs.

MFC after:	1 month
Sponsored by:	iXsystems, Inc.
2019-09-23 17:53:47 +00:00
..
nvme_ahci.c Make nvme(4) driver some more NUMA aware. 2019-09-23 17:53:47 +00:00
nvme_ctrlr_cmd.c Make nvme(4) driver some more NUMA aware. 2019-09-23 17:53:47 +00:00
nvme_ctrlr.c Make nvme(4) driver some more NUMA aware. 2019-09-23 17:53:47 +00:00
nvme_ns_cmd.c Add a brief comment explaining why we can return ETIMEDOUT from the call to the 2019-09-02 17:10:46 +00:00
nvme_ns.c In all the places that we use the polled for completion interface, except crash 2019-09-02 17:11:27 +00:00
nvme_pci.c Make nvme(4) driver some more NUMA aware. 2019-09-23 17:53:47 +00:00
nvme_private.h Make nvme(4) driver some more NUMA aware. 2019-09-23 17:53:47 +00:00
nvme_qpair.c Make nvme(4) driver some more NUMA aware. 2019-09-23 17:53:47 +00:00
nvme_sim.c Fix nda(4) PCIe link status output 2019-06-07 18:34:48 +00:00
nvme_sysctl.c Make nvme(4) driver some more NUMA aware. 2019-09-23 17:53:47 +00:00
nvme_test.c Remove #ifdef code to support FreeBSD versions that haven't been 2019-02-27 22:05:01 +00:00
nvme_util.c sys/dev: further adoption of SPDX licensing ID tags. 2017-11-27 14:52:40 +00:00
nvme.c Implement nvme suspend / resume for pci attachment 2019-09-03 15:26:11 +00:00
nvme.h Add nvmecontrol resv to handle NVMe reservations. 2019-08-05 17:36:00 +00:00