From: Hannes Reinecke <hare@suse.de>
To: Sagi Grimberg <sagi@grimberg.me>,
Hannes Reinecke <hare@kernel.org>, Christoph Hellwig <hch@lst.de>
Cc: Keith Busch <kbusch@kernel.org>, linux-nvme@lists.infradead.org
Subject: Re: [PATCH] nvme: Remove namespace when nvme_identify_ns_descs() failed
Date: Wed, 8 Jan 2025 16:45:54 +0100 [thread overview]
Message-ID: <e3c2d261-c360-4ec4-9423-e5c9ffbd9758@suse.de> (raw)
In-Reply-To: <9cdb72d6-291f-46a1-8c80-45ceb75e2b8b@grimberg.me>
On 1/8/25 11:49, Sagi Grimberg wrote:
>
>
>
> On 07/01/2025 10:11, Hannes Reinecke wrote:
>> On 12/25/24 10:58, Sagi Grimberg wrote:
>>>
>>>
>>>
>>> On 29/11/2024 16:06, Hannes Reinecke wrote:
>>>> When a namespace gets unmapped on the target during scanning
>>>> nvme_identify_ns_descs() returns with a non-retryable error.
>>>> With the currrent code we will ignore that error on the grounds
>>>> that we failed to get information, and hence cannot make any
>>>> decisions whether to keep or remove that namespace.
>>>> But a non-retryable error implies that the namespace is _not_
>>>> present as we cannot retry that command and will never get
>>>> information about that namespace.
>>>> And we need to remove the namespace during scanning, as otherwise
>>>> the AEN informing us about a namespace change will find the NSID
>>>> present, but nvme_validate_ns() will fail, and the namespace
>>>> will never be updated with the correct information.
>>>
>>> Isn't that a bit harsh?
>>> I would expect to see a specific status line NVME_SC_INVALID_NS or
>>> equivalent for a full removal of the namespace?
>>
>> Does it matter? If we get a DNR status back from
>> nvme_identify_ns_descs() we _cannot_ resend that command.
>> Meaning we cannot get the namespace descriptors. As we
>> rely on these descriptors to properly map the namespace
>> we cannot correctly work with it, and we're better off
>> to pretend the namespace is gone and wait for an AEN
>> indicating that the namespace (or controller) state has changed.
>
> I think it does matter. I don't think we should be removing the NS without
> the controller telling us that it is actually removed.
But what would be the recovery action here?
If the 'identify ns descs' command cannot be retried, how are
we going to map the namespace to an ns_head?
Cheers,
Hannes
--
Dr. Hannes Reinecke Kernel Storage Architect
hare@suse.de +49 911 74053 688
SUSE Software Solutions GmbH, Frankenstr. 146, 90461 Nürnberg
HRB 36809 (AG Nürnberg), GF: I. Totev, A. McDonald, W. Knoblich
next prev parent reply other threads:[~2025-01-08 15:46 UTC|newest]
Thread overview: 23+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-11-29 14:06 [PATCH] nvme: Remove namespace when nvme_identify_ns_descs() failed Hannes Reinecke
2024-12-03 19:15 ` Keith Busch
2024-12-04 7:14 ` Hannes Reinecke
2024-12-04 16:39 ` Keith Busch
2024-12-05 12:30 ` Hannes Reinecke
2024-12-05 16:15 ` Keith Busch
2024-12-06 12:41 ` Hannes Reinecke
2025-01-07 16:01 ` Keith Busch
2025-01-11 14:01 ` Nilay Shroff
2025-01-13 7:43 ` Hannes Reinecke
2025-01-13 14:12 ` Nilay Shroff
2025-01-13 14:29 ` Hannes Reinecke
2025-01-15 7:48 ` Nilay Shroff
2025-01-15 8:02 ` Hannes Reinecke
2025-01-15 8:18 ` Nilay Shroff
2025-01-15 8:22 ` Hannes Reinecke
2024-12-24 11:35 ` Sagi Grimberg
2024-12-25 9:58 ` Sagi Grimberg
2025-01-07 8:11 ` Hannes Reinecke
2025-01-08 10:49 ` Sagi Grimberg
2025-01-08 15:45 ` Hannes Reinecke [this message]
2025-01-10 23:16 ` Sagi Grimberg
2025-01-13 7:50 ` Hannes Reinecke
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=e3c2d261-c360-4ec4-9423-e5c9ffbd9758@suse.de \
--to=hare@suse.de \
--cc=hare@kernel.org \
--cc=hch@lst.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
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox