linux/drivers/nvme/host
Jens Axboe 04f3eafda6 nvme: implement mq_ops->commit_rqs() hook
Split the command submission and the SQ doorbell ring, and add the
doorbell ring as our ->commit_rqs() hook. This allows a list of
requests to be issued, with nvme only writing the SQ update when
it's necessary. This is more efficient if we have lists of requests
to issue, particularly on virtualized hardware, where writing the
SQ doorbell is more expensive than on real hardware. For those cases,
performance increases of 2-3x have been observed.

The use case for this is plugged IO, where blk-mq flushes a batch of
requests at the time.

Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
2018-11-29 10:12:07 -07:00
..
core.c Linux 4.20-rc3 2018-11-18 15:46:03 -07:00
fabrics.c nvme-fabrics: move controller options matching to fabrics 2018-10-19 14:22:24 +02:00
fabrics.h nvme-fabrics: move controller options matching to fabrics 2018-10-19 14:22:24 +02:00
fault_inject.c nvme: Add fault injection feature 2018-03-26 08:53:43 -06:00
fc.c nvme-fc: remove ->poll implementation 2018-11-19 12:06:32 -07:00
Kconfig IB: Revert "remove redundant INFINIBAND kconfig dependencies" 2018-05-28 10:40:16 -06:00
lightnvm.c lightnvm: do no update csecs and sos on 1.2 2018-10-09 08:25:08 -06:00
Makefile nvme: Add fault injection feature 2018-03-26 08:53:43 -06:00
multipath.c block: make blk_poll() take a parameter on whether to spin or not 2018-11-26 08:25:53 -07:00
nvme.h blk-mq-tag: change busy_iter_fn to return whether to continue or not 2018-11-08 10:24:07 -07:00
pci.c nvme: implement mq_ops->commit_rqs() hook 2018-11-29 10:12:07 -07:00
rdma.c blk-mq: remove 'tag' parameter from mq_ops->poll() 2018-11-26 08:25:44 -07:00
trace.c nvme: add disk name to trace events 2018-07-24 15:55:48 +02:00
trace.h nvme-core: add async event trace helper 2018-10-01 14:16:12 -07:00