NVMe: Use CMB for the IO SQes if available
authorJon Derrick <jonathan.derrick@intel.com>
Mon, 20 Jul 2015 16:14:09 +0000 (10:14 -0600)
committerJens Axboe <axboe@fb.com>
Tue, 21 Jul 2015 15:40:11 +0000 (09:40 -0600)
commit8ffaadf7429270914b8f146ec13cf305e01df20d
treec122dc7aa4babd3bbb8ea7451fa5b8ae93738ab4
parent498c43949c7b8f57e0afb8195019cf5a7ba72de0
NVMe: Use CMB for the IO SQes if available

Some controllers have a controller-side memory buffer available for use
for submissions, completions, lists, or data.

If a CMB is available, the entire CMB will be ioremapped and it will
attempt to map the IO SQes onto the CMB. The queues will be shrunk as
needed. The CMB will not be used if the queue depth is shrunk below some
threshold where it may have reduced performance over a larger queue
in system memory.

Signed-off-by: Jon Derrick <jonathan.derrick@intel.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Jens Axboe <axboe@fb.com>
drivers/block/nvme-core.c
include/linux/nvme.h