Linux-NVME Archive on lore.kernel.org
 help / color / Atom feed
From: Christoph Hellwig <hch@lst.de>
To: Hannes Reinecke <hare@suse.de>
Cc: Keith Busch <kbusch@kernel.org>, Christoph Hellwig <hch@lst.de>,
	linux-nvme@lists.infradead.org, Sagi Grimberg <sagi@grimberg.me>
Subject: Re: [PATCH] nvme: always treat DNR status as no-retryable
Date: Tue, 26 Nov 2019 17:39:22 +0100
Message-ID: <20191126163922.GA7946@lst.de> (raw)
In-Reply-To: <3186d79f-910a-18f6-dcae-080b370bcab3@suse.de>

On Tue, Nov 26, 2019 at 05:34:21PM +0100, Hannes Reinecke wrote:
> On 11/26/19 5:15 PM, Keith Busch wrote:
>> On Tue, Nov 26, 2019 at 02:37:49PM +0100, Hannes Reinecke wrote:
>>> If the DNR bit is set in the command status we should not retry
>>> the command, irrespective of what the actual status is.
>>> So map it directly to BLK_STS_TARGET to inform upper layers to
>>> not retry the command, not even on another path.
>>
>> Why can't a DNR error be path specific, like if I detach a namespace
>> from one of the controllers?
>>   
> I've discussed the very same question with Fred Knight, and according to 
> him the 'DNR' bit is _command_ specific, ie _this particular command_ 
> should not be retried.
> Any eventual alternative path should not be considered.

To quote from the spec:

"Do Not Retry (DNR): If set to ‘1’, indicates that if the same command is
re-submitted to any controller in the NVM subsystem, then that re-submitted
command is expected to fail. If cleared to ‘0’, indicates that the same
command may succeed if retried."

So yes, we should generally not submit it on another path, which is in
fact what we already do if you look at nvme_complete_rq and
nvme_req_needs_retry.

Besides not not needing the BLK_STS_TARGET remap that remap also is a
horrible bad idea given that is loses way too much information.

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

  reply index

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-11-26 13:37 Hannes Reinecke
2019-11-26 16:15 ` Keith Busch
2019-11-26 16:34   ` Hannes Reinecke
2019-11-26 16:39     ` Christoph Hellwig [this message]
2019-11-26 16:22 ` Christoph Hellwig
2019-11-26 16:28   ` Hannes Reinecke

Reply instructions:

You may reply publically 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=20191126163922.GA7946@lst.de \
    --to=hch@lst.de \
    --cc=hare@suse.de \
    --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

Linux-NVME Archive on lore.kernel.org

Archives are clonable:
	git clone --mirror https://lore.kernel.org/linux-nvme/0 linux-nvme/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 linux-nvme linux-nvme/ https://lore.kernel.org/linux-nvme \
		linux-nvme@lists.infradead.org
	public-inbox-index linux-nvme

Example config snippet for mirrors

Newsgroup available over NNTP:
	nntp://nntp.lore.kernel.org/org.infradead.lists.linux-nvme


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git