linux-block.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* Centralize nvme controller reset, delete and fabrics periodic reconnects
@ 2017-08-15  9:52 Sagi Grimberg
  2017-08-15  9:52 ` [PATCH 01/12] nvme: move err and reconnect work to nvme ctrl Sagi Grimberg
                   ` (13 more replies)
  0 siblings, 14 replies; 25+ messages in thread
From: Sagi Grimberg @ 2017-08-15  9:52 UTC (permalink / raw)
  To: linux-nvme, Christoph Hellwig, Keith Busch; +Cc: linux-block

This is the third part of the attempt to centralize controller reset,
delete and fabrics error recovery in nvme core.

As a reminder, the motivation is to get as much of the duplicate logic
existing in the various nvme transports to coommon code as possible.
We strive to have nvme core and fabrics modules take care of nvme and
fabrics constructs and initialization procedures and have our transports
simply worry about the underlying medium and spec extensions/enhancements.

This set is a step in that direction in the sense that it places a generic
controller initialization flows in nvme core, and converts two transports
to use common code.

The set is gradually reshaping nvme-rdma code to be more generic and then
simply move it to nvme-core (controller reset and delete) and nvme-fabrics
(error recovery and periodic reconnects). Then, nvme-loop is converted to
use nvme-core in one shot (Simply rip out all the duplicated logic).

Note that this patch set shouldn't break any transport that still does not
use it (pci, fc). The next part would be to take a stab at these transports
and add whatever is still needed to common code.

I tested this set with controller resets, deletes and error recovery in
the presence of I/O load. I tested rdma and loop.

Note that this direction got some exposure [1] and I tried to incorporate
feedback so if no hard objections are raised I plan to land this in 4.14.

This set applies on nvme-4.14 plus 4.13 recent fixes.

[1]:
http://www.mail-archive.com/linux-block@vger.kernel.org/msg09923.html
https://lwn.net/Articles/725720/

Sagi Grimberg (12):
  nvme: move err and reconnect work to nvme ctrl
  nvme-rdma: move admin specific resources to alloc_queue
  nvme-rdma: split nvme_rdma_alloc_io_queues
  nvme-rdma: restructure create_ctrl a bit
  nvme-rdma: introduce nvme_rdma_alloc/stop/free_admin_queue
  nvme-rdma: plumb nvme ctrl to various routines
  nvme-rdma: split generic probe out of create_ctrl
  nvme: add some ctrl ops for centralizing control plane logic.
  nvme: move control plane handling to nvme core
  nvme-fabrics: handle reconnects in fabrics library
  nvme: add sed-opal ctrl manipulation in admin configuration
  nvme-loop: convert to nvme-core control plane management

 drivers/nvme/host/core.c    | 312 +++++++++++++++++++++++++++
 drivers/nvme/host/fabrics.c | 103 +++++++++
 drivers/nvme/host/fabrics.h |   1 +
 drivers/nvme/host/nvme.h    |  27 +++
 drivers/nvme/host/rdma.c    | 515 +++++++++-----------------------------------
 drivers/nvme/target/loop.c  | 443 ++++++++++++++-----------------------
 6 files changed, 706 insertions(+), 695 deletions(-)

-- 
2.7.4

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

end of thread, other threads:[~2017-08-20  6:38 UTC | newest]

Thread overview: 25+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2017-08-15  9:52 Centralize nvme controller reset, delete and fabrics periodic reconnects Sagi Grimberg
2017-08-15  9:52 ` [PATCH 01/12] nvme: move err and reconnect work to nvme ctrl Sagi Grimberg
2017-08-15  9:52 ` [PATCH 02/12] nvme-rdma: move admin specific resources to alloc_queue Sagi Grimberg
2017-08-15  9:52 ` [PATCH 03/12] nvme-rdma: split nvme_rdma_alloc_io_queues Sagi Grimberg
2017-08-15  9:52 ` [PATCH 04/12] nvme-rdma: restructure create_ctrl a bit Sagi Grimberg
2017-08-15  9:52 ` [PATCH 05/12] nvme-rdma: introduce nvme_rdma_alloc/stop/free_admin_queue Sagi Grimberg
2017-08-15  9:52 ` [PATCH 06/12] nvme-rdma: plumb nvme ctrl to various routines Sagi Grimberg
2017-08-15  9:52 ` [PATCH 07/12] nvme-rdma: split generic probe out of create_ctrl Sagi Grimberg
2017-08-15  9:52 ` [PATCH 08/12] nvme: add some ctrl ops for centralizing control plane logic Sagi Grimberg
2017-08-15  9:52 ` [PATCH 09/12] nvme: move control plane handling to nvme core Sagi Grimberg
2017-08-15  9:52 ` [PATCH 10/12] nvme-fabrics: handle reconnects in fabrics library Sagi Grimberg
2017-08-15  9:52 ` [PATCH 11/12] nvme: add sed-opal ctrl manipulation in admin configuration Sagi Grimberg
2017-08-15  9:52 ` [PATCH 12/12] nvme-loop: convert to nvme-core control plane management Sagi Grimberg
2017-08-16  8:16 ` Centralize nvme controller reset, delete and fabrics periodic reconnects Christoph Hellwig
2017-08-16  9:33   ` Sagi Grimberg
2017-08-16  9:35     ` Christoph Hellwig
2017-08-16  9:46       ` Sagi Grimberg
2017-08-16  9:57         ` Christoph Hellwig
2017-08-16 10:09           ` Sagi Grimberg
2017-08-16 10:49 ` Christoph Hellwig
2017-08-16 13:51   ` Sagi Grimberg
2017-08-16 15:17     ` Christoph Hellwig
2017-08-17  7:21       ` Sagi Grimberg
2017-08-17  7:36         ` Christoph Hellwig
2017-08-20  6:37           ` Sagi Grimberg

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).