* [PATCHv2] nvme: generate uevent once a multipath namespace is operational again
@ 2021-05-11 8:03 Hannes Reinecke
2021-05-11 16:19 ` Christoph Hellwig
2021-05-11 17:08 ` Sagi Grimberg
0 siblings, 2 replies; 6+ messages in thread
From: Hannes Reinecke @ 2021-05-11 8:03 UTC (permalink / raw)
To: Christoph Hellwig; +Cc: Sagi Grimberg, Keith Busch, linux-nvme, Hannes Reinecke
In an all paths down scenario I/O will be requeued or aborted, so no
further I/O will be ongoing on this namespace.
This leaves upper layers like MD unable to determine if the namespace
becomes operational again after a successful controller reset.
This patch will send an uevent per multipathed namespace once the
underlying controller is LIVE, allowing MD to start resync.
Changes to v1:
- use disk_uevent() as suggested by hch
Signed-off-by: Hannes Reinecke <hare@suse.de>
---
drivers/nvme/host/multipath.c | 7 +++++--
1 file changed, 5 insertions(+), 2 deletions(-)
diff --git a/drivers/nvme/host/multipath.c b/drivers/nvme/host/multipath.c
index 0551796517e6..ecc99bd5f8ad 100644
--- a/drivers/nvme/host/multipath.c
+++ b/drivers/nvme/host/multipath.c
@@ -100,8 +100,11 @@ void nvme_kick_requeue_lists(struct nvme_ctrl *ctrl)
down_read(&ctrl->namespaces_rwsem);
list_for_each_entry(ns, &ctrl->namespaces, list) {
- if (ns->head->disk)
- kblockd_schedule_work(&ns->head->requeue_work);
+ if (!ns->head->disk)
+ continue;
+ kblockd_schedule_work(&ns->head->requeue_work);
+ if (ctrl->state == NVME_CTRL_LIVE)
+ disk_uevent(ns->head->disk, KOBJ_CHANGE);
}
up_read(&ctrl->namespaces_rwsem);
}
--
2.29.2
_______________________________________________
Linux-nvme mailing list
Linux-nvme@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-nvme
^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: [PATCHv2] nvme: generate uevent once a multipath namespace is operational again
2021-05-11 8:03 [PATCHv2] nvme: generate uevent once a multipath namespace is operational again Hannes Reinecke
@ 2021-05-11 16:19 ` Christoph Hellwig
2021-05-12 5:24 ` Hannes Reinecke
2021-05-11 17:08 ` Sagi Grimberg
1 sibling, 1 reply; 6+ messages in thread
From: Christoph Hellwig @ 2021-05-11 16:19 UTC (permalink / raw)
To: Hannes Reinecke; +Cc: Christoph Hellwig, Sagi Grimberg, Keith Busch, linux-nvme
On Tue, May 11, 2021 at 10:03:08AM +0200, Hannes Reinecke wrote:
> In an all paths down scenario I/O will be requeued or aborted, so no
> further I/O will be ongoing on this namespace.
> This leaves upper layers like MD unable to determine if the namespace
> becomes operational again after a successful controller reset.
> This patch will send an uevent per multipathed namespace once the
> underlying controller is LIVE, allowing MD to start resync.
Can you please also add a comment why we are sending the event?
_______________________________________________
Linux-nvme mailing list
Linux-nvme@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-nvme
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCHv2] nvme: generate uevent once a multipath namespace is operational again
2021-05-11 8:03 [PATCHv2] nvme: generate uevent once a multipath namespace is operational again Hannes Reinecke
2021-05-11 16:19 ` Christoph Hellwig
@ 2021-05-11 17:08 ` Sagi Grimberg
1 sibling, 0 replies; 6+ messages in thread
From: Sagi Grimberg @ 2021-05-11 17:08 UTC (permalink / raw)
To: Hannes Reinecke, Christoph Hellwig; +Cc: Keith Busch, linux-nvme
> In an all paths down scenario I/O will be requeued or aborted, so no
> further I/O will be ongoing on this namespace.
> This leaves upper layers like MD unable to determine if the namespace
> becomes operational again after a successful controller reset.
> This patch will send an uevent per multipathed namespace once the
> underlying controller is LIVE, allowing MD to start resync.
>
> Changes to v1:
> - use disk_uevent() as suggested by hch
>
> Signed-off-by: Hannes Reinecke <hare@suse.de>
> ---
> drivers/nvme/host/multipath.c | 7 +++++--
> 1 file changed, 5 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/nvme/host/multipath.c b/drivers/nvme/host/multipath.c
> index 0551796517e6..ecc99bd5f8ad 100644
> --- a/drivers/nvme/host/multipath.c
> +++ b/drivers/nvme/host/multipath.c
> @@ -100,8 +100,11 @@ void nvme_kick_requeue_lists(struct nvme_ctrl *ctrl)
>
> down_read(&ctrl->namespaces_rwsem);
> list_for_each_entry(ns, &ctrl->namespaces, list) {
> - if (ns->head->disk)
> - kblockd_schedule_work(&ns->head->requeue_work);
> + if (!ns->head->disk)
> + continue;
> + kblockd_schedule_work(&ns->head->requeue_work);
> + if (ctrl->state == NVME_CTRL_LIVE)
> + disk_uevent(ns->head->disk, KOBJ_CHANGE);
> }
> up_read(&ctrl->namespaces_rwsem);
> }
Why only for multipath namespaces though? This is not needed for
non-multipath namespaces
_______________________________________________
Linux-nvme mailing list
Linux-nvme@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-nvme
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCHv2] nvme: generate uevent once a multipath namespace is operational again
2021-05-11 16:19 ` Christoph Hellwig
@ 2021-05-12 5:24 ` Hannes Reinecke
2021-05-12 6:20 ` Christoph Hellwig
0 siblings, 1 reply; 6+ messages in thread
From: Hannes Reinecke @ 2021-05-12 5:24 UTC (permalink / raw)
To: Christoph Hellwig; +Cc: Sagi Grimberg, Keith Busch, linux-nvme
On 5/11/21 6:19 PM, Christoph Hellwig wrote:
> On Tue, May 11, 2021 at 10:03:08AM +0200, Hannes Reinecke wrote:
>> In an all paths down scenario I/O will be requeued or aborted, so no
>> further I/O will be ongoing on this namespace.
>> This leaves upper layers like MD unable to determine if the namespace
>> becomes operational again after a successful controller reset.
>> This patch will send an uevent per multipathed namespace once the
>> underlying controller is LIVE, allowing MD to start resync.
>
> Can you please also add a comment why we are sending the event?
>
You mean, why sending KOBJ_CHANGE and not KOBJ_ADD?
Cheers,
Hannes
--
Dr. Hannes Reinecke Kernel Storage Architect
hare@suse.de +49 911 74053 688
SUSE Software Solutions GmbH, Maxfeldstr. 5, 90409 Nürnberg
HRB 36809 (AG Nürnberg), Geschäftsführer: Felix Imendörffer
_______________________________________________
Linux-nvme mailing list
Linux-nvme@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-nvme
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCHv2] nvme: generate uevent once a multipath namespace is operational again
2021-05-12 5:24 ` Hannes Reinecke
@ 2021-05-12 6:20 ` Christoph Hellwig
2021-05-12 13:06 ` Hannes Reinecke
0 siblings, 1 reply; 6+ messages in thread
From: Christoph Hellwig @ 2021-05-12 6:20 UTC (permalink / raw)
To: Hannes Reinecke; +Cc: Christoph Hellwig, Sagi Grimberg, Keith Busch, linux-nvme
On Wed, May 12, 2021 at 07:24:44AM +0200, Hannes Reinecke wrote:
>> Can you please also add a comment why we are sending the event?
>>
> You mean, why sending KOBJ_CHANGE and not KOBJ_ADD?
Maybe that to, but most importantly why we are sending an event here.
_______________________________________________
Linux-nvme mailing list
Linux-nvme@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-nvme
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCHv2] nvme: generate uevent once a multipath namespace is operational again
2021-05-12 6:20 ` Christoph Hellwig
@ 2021-05-12 13:06 ` Hannes Reinecke
0 siblings, 0 replies; 6+ messages in thread
From: Hannes Reinecke @ 2021-05-12 13:06 UTC (permalink / raw)
To: Christoph Hellwig; +Cc: Sagi Grimberg, Keith Busch, linux-nvme
On 5/12/21 8:20 AM, Christoph Hellwig wrote:
> On Wed, May 12, 2021 at 07:24:44AM +0200, Hannes Reinecke wrote:
>>> Can you please also add a comment why we are sending the event?
>>>
>> You mean, why sending KOBJ_CHANGE and not KOBJ_ADD?
>
> Maybe that to, but most importantly why we are sending an event here.
>
Ah. A comment in the code, you mean.
Of course, will do.
Cheers,
Hannes
--
Dr. Hannes Reinecke Kernel Storage Architect
hare@suse.de +49 911 74053 688
SUSE Software Solutions Germany GmbH, Maxfeldstr. 5, 90409 Nürnberg
HRB 36809 (AG Nürnberg), GF: Felix Imendörffer
_______________________________________________
Linux-nvme mailing list
Linux-nvme@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-nvme
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2021-05-12 13:06 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-05-11 8:03 [PATCHv2] nvme: generate uevent once a multipath namespace is operational again Hannes Reinecke
2021-05-11 16:19 ` Christoph Hellwig
2021-05-12 5:24 ` Hannes Reinecke
2021-05-12 6:20 ` Christoph Hellwig
2021-05-12 13:06 ` Hannes Reinecke
2021-05-11 17:08 ` Sagi Grimberg
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.