From: Hannes Reinecke <hare@suse.de>
To: Christoph Hellwig <hch@lst.de>
Cc: Sagi Grimberg <sagi@grimberg.me>,
Keith Busch <keith.busch@wdc.com>,
linux-nvme@lists.infradead.org
Subject: Re: [PATCH] nvme: generate uevent once a multipath namespace is operational again
Date: Thu, 6 May 2021 10:48:28 +0200 [thread overview]
Message-ID: <f5423135-66c2-293b-3743-a5fb0ceb2be2@suse.de> (raw)
In-Reply-To: <20210506073740.GB14615@lst.de>
On 5/6/21 9:37 AM, Christoph Hellwig wrote:
> On Wed, May 05, 2021 at 12:33:05PM +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.
>
> Do we have any documentation or other exampes for this KOBJ_CHANGED
> magic? I've seen it in a few places, but it always seemed rather
> cargo cult to me. If you have a more insights any chance you could
> document it?
>
It's precisely cargo cult, but definitely not well documented.
Currently there is an ambiguity between 'KOBJ_ADD' and 'KOBJ_CHANGED';
some devices will only send KOBJ_ADD, other (most notably S/390 DASDs
and device-mapper devices) will send KOBJ_CHANGED to indicate that this
device is now live and ready for use.
Sadly there is no indicator telling you if that particular device
implements KOBJ_CHANGED at all, so one really has to know what to look
out for.
But the general rule is that 'KOBJ_CHANGED' indicates that a device is
not ready for use; KOBJ_ADD indicates that a device has been added to
the system and _might_ indicate that the device is ready to use.
>> + if (ctrl->state == NVME_CTRL_LIVE)
>> + kobject_uevent(&disk_to_dev(ns->head->disk)->kobj,
>> + KOBJ_CHANGE);
>
> Also this should probably use disk_uevent to also notify partitions.
> Maybe also for other existing callers.
>
Indeed, you are correct. Will be fixing it.
Cheers,
Hannes
--
Dr. Hannes Reinecke Kernel Storage Architect
hare@suse.de +49 911 74053 688
SUSE Software Solutions Germany GmbH, 90409 Nürnberg
GF: F. Imendörffer, HRB 36809 (AG Nürnberg)
_______________________________________________
Linux-nvme mailing list
Linux-nvme@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-nvme
prev parent reply other threads:[~2021-05-06 8:49 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-05-05 10:33 [PATCH] nvme: generate uevent once a multipath namespace is operational again Hannes Reinecke
2021-05-06 7:37 ` Christoph Hellwig
2021-05-06 8:48 ` Hannes Reinecke [this message]
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=f5423135-66c2-293b-3743-a5fb0ceb2be2@suse.de \
--to=hare@suse.de \
--cc=hch@lst.de \
--cc=keith.busch@wdc.com \
--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