NVMe: per-cpu io queues
authorKeith Busch <keith.busch@intel.com>
Mon, 24 Mar 2014 16:46:25 +0000 (10:46 -0600)
committerMatthew Wilcox <matthew.r.wilcox@intel.com>
Thu, 10 Apr 2014 21:03:15 +0000 (17:03 -0400)
commit42f614201e80ff4cfb8b285d7190149a8e1e6cec
tree03a71487b6015ccca44d00053b1643193926f04f
parent6eb0d698efa9c2a35ec3ca958699717c603f85ee
NVMe: per-cpu io queues

The device's IO queues are associated with CPUs, so we can use a per-cpu
variable to map the a qid to a cpu. This provides a convienient way
to optimally assign queues to multiple cpus when the device supports
fewer queues than the host has cpus. The previous implementation may
have assigned these poorly in these situations. This patch addresses
this by sharing queues among cpus that are "close" together and should
have a lower lock contention penalty.

Signed-off-by: Keith Busch <keith.busch@intel.com>
Signed-off-by: Matthew Wilcox <matthew.r.wilcox@intel.com>
drivers/block/nvme-core.c
include/linux/nvme.h