All of lore.kernel.org
 help / color / mirror / Atom feed
* nvme completion path optimizations and fixes V3
@ 2015-11-07  8:44 Christoph Hellwig
  2015-11-07  8:44 ` [PATCH 01/12] block: fix blk_abort_request for blk-mq drivers Christoph Hellwig
                   ` (11 more replies)
  0 siblings, 12 replies; 28+ messages in thread
From: Christoph Hellwig @ 2015-11-07  8:44 UTC (permalink / raw)


This series optimized the NVMe completion path by taking full advantage
to the block layer multiple completion protection.  For that we'll need
to switch the remaining internal NVMe admin commands over to use the
block layer queuing.

But to do that we first have to special case the magic AEN requests.  This
only ends up being a single unlikely branch in the completion path, so
I think we're way better off than before.

The other important change is that block layer timeouts now call the driver
from workqueue context, which will make life much easier not just for NVMe,
but also for SCSI.  The way we use the workqueue API for this isn't quite
optimal, but I've Cced Tejun in case he can help out there.


Changes since V2:
 - not too much left from the original version except for the high level
   concept

Changes since V1:
 - various hotplug CPU fixes, including a patch from Akinobu Mita

^ permalink raw reply	[flat|nested] 28+ messages in thread

end of thread, other threads:[~2015-11-16 10:05 UTC | newest]

Thread overview: 28+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-11-07  8:44 nvme completion path optimizations and fixes V3 Christoph Hellwig
2015-11-07  8:44 ` [PATCH 01/12] block: fix blk_abort_request for blk-mq drivers Christoph Hellwig
2015-11-07  8:44 ` [PATCH 02/12] block: defer timeouts to a workqueue Christoph Hellwig
2015-11-07  8:44 ` [PATCH 03/12] nvme: factor out a nvme_unmap_data helper Christoph Hellwig
2015-11-09 18:47   ` Keith Busch
2015-11-09 18:56     ` Christoph Hellwig
2015-11-07  8:44 ` [PATCH 04/12] nvme: factor out a few helpers from req_completion Christoph Hellwig
2015-11-07  8:44 ` [PATCH 05/12] nvme: switch delete SQ/CQ to blk_execute_rq_nowait Christoph Hellwig
2015-11-07  8:45 ` [PATCH 06/12] nvme: switch abort " Christoph Hellwig
2015-11-09 21:33   ` Keith Busch
2015-11-09 21:46     ` Jens Axboe
2015-11-10  5:56       ` Christoph Hellwig
2015-11-07  8:45 ` [PATCH 07/12] nvme: special case AEN requests Christoph Hellwig
2015-11-09 21:43   ` Keith Busch
2015-11-09 21:48     ` Jens Axboe
2015-11-10  5:57       ` Christoph Hellwig
2015-11-07  8:45 ` [PATCH 08/12] nvme: simplify completion handling Christoph Hellwig
2015-11-07  8:45 ` [PATCH 09/12] nvme: properly free resources for cancelled command Christoph Hellwig
2015-11-09 18:57   ` Keith Busch
2015-11-09 19:25     ` Christoph Hellwig
2015-11-09 20:12       ` Keith Busch
2015-11-10  8:13         ` Christoph Hellwig
2015-11-10 16:03           ` Keith Busch
2015-11-10 20:28             ` Keith Busch
2015-11-16 10:05               ` Christoph Hellwig
2015-11-07  8:45 ` [PATCH 10/12] nvme: meta_sg doesn't have to be an array Christoph Hellwig
2015-11-07  8:45 ` [PATCH 11/12] nvme: merge iod and cmd_info Christoph Hellwig
2015-11-07  8:45 ` [PATCH 12/12] block: remove REQ_NO_TIMEOUT flag Christoph Hellwig

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.