All of lore.kernel.org
 help / color / mirror / Atom feed
From: Victor Gladkov <Victor.Gladkov@kioxia.com>
To: Sagi Grimberg <sagi@grimberg.me>, Hannes Reinecke <hare@suse.de>
Cc: Keith Busch <kbusch@kernel.org>,
	"Ewan D. Milne" <emilne@redhat.com>,
	Christoph Hellwig <hch@lst.de>,
	"linux-nvme@lists.infradead.org" <linux-nvme@lists.infradead.org>,
	James Smart <james.smart@broadcom.com>
Subject: RE: [PATCH v7] nvme-fabrics: reject I/O to offline device
Date: Wed, 12 Aug 2020 14:09:11 +0000	[thread overview]
Message-ID: <f3166282a6cf4f5c8b39ade6b0453395@kioxia.com> (raw)
In-Reply-To: <ad7afffa-40b5-6cf8-6dff-21a32328c552@grimberg.me>

On 2020/8/11 23:56, Sagi Grimberg wrote:
> 
> I think we still have a question to why is this fabrics specific, and if this is
> needed in fabrics, why is it not needed in pci as well.
> 
> Keith? Personally speaking, I also share Chirstoph's opinion that if it's not
> clearly fabrics specific, we should try to make pci and fabrics unified.
> 
> Your thoughts on this?

PCI doesn't define 'timeout'/'number of retries' for reconnect of the controller.
And the controller shuts down immediately if controller times out while starting.
NVME_CTRL_CONNECTING state used as transition state in the
nvme_reset_work() procedure to save similarities with fabric transports.
See below quotes from pci.c

1. 
----------------------------------------------------
Quote from nvme_timeout() function (pci.h)
	/*
	 * Shutdown immediately if controller times out while starting. The
	 * reset work will see the pci device disabled when it gets the forced
	 * cancellation error. All outstanding requests are completed on
	 * shutdown, so we return BLK_EH_DONE.
	 */
	switch (dev->ctrl.state) {
	case NVME_CTRL_CONNECTING:
		nvme_change_ctrl_state(&dev->ctrl, NVME_CTRL_DELETING);
		/* fall through */
----------------------------------------------------
2.
----------------------------------------------------
Quote from nvme_reset_work() function (pci.h)
	/*
	 * Introduce CONNECTING state from nvme-fc/rdma transports to mark the
	 * initializing procedure here.
	 */
	if (!nvme_change_ctrl_state(&dev->ctrl, NVME_CTRL_CONNECTING)) {
----------------------------------------------------


_______________________________________________
Linux-nvme mailing list
Linux-nvme@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-nvme

  reply	other threads:[~2020-08-12 14:09 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-07-08 15:07 [PATCH v7] nvme-fabrics: reject I/O to offline device Victor Gladkov
2020-07-09 20:34 ` James Smart
2020-07-10  4:50   ` Sagi Grimberg
2020-07-10  6:58     ` Hannes Reinecke
2020-07-14 11:04     ` Christoph Hellwig
2020-07-22 22:57       ` Sagi Grimberg
2020-08-09 15:32         ` Victor Gladkov
2020-08-11 20:56           ` Sagi Grimberg
2020-08-12 14:09             ` Victor Gladkov [this message]
2020-08-13 15:00 ` James Smart

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=f3166282a6cf4f5c8b39ade6b0453395@kioxia.com \
    --to=victor.gladkov@kioxia.com \
    --cc=emilne@redhat.com \
    --cc=hare@suse.de \
    --cc=hch@lst.de \
    --cc=james.smart@broadcom.com \
    --cc=kbusch@kernel.org \
    --cc=linux-nvme@lists.infradead.org \
    --cc=sagi@grimberg.me \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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.