nvme/pcie hot plug results in /dev name change

Ming Lei ming.lei at redhat.com
Sun Jan 29 02:28:05 PST 2023


On Fri, Jan 20, 2023 at 11:01:53PM -0800, Christoph Hellwig wrote:
> On Fri, Jan 20, 2023 at 02:42:23PM -0700, Keith Busch wrote:
> > That is correct. We don't know the identity of the device at the point
> > we have to assign it an instance number, so the hot added one will just
> > get the first available unique number. If you need a consistent name, we
> > have the persistent naming rules that should create those links in
> > /dev/disk/by-id/.
> 
> Note that this a bit of a problem under a file system or stacking driver
> that handles failing drives (e.g. btrfs or md raid), that holds ontop
> the "old" device file, and then fails to find the new one.  I had a
> customer complaint for that as well :)
> 
> The first hack was to force run the multipath code that can keep the
> node alive.  That works, but is really ugly especially when dealing
> with corner cases such as overlapping nsids between different
> controllers.
> 
> In the long run I think we'll need to:
>  - send a notification to the holder if a device is hot removed from
>    the block layer so that it can clean up

When the disk is deleted, the notification has been sent to userspace
via udev/kobj uevent, so user can umount the original FS or
DM/MD userspace can handle the device removal.

>  - make the upper layers look for the replugged devie
> 
> I've been working on some of this for a while but haven't made much
> progress due to other committments.

block device persistent name is supposed to be supported by userspace,
such as udev rule.

[1] https://wiki.archlinux.org/title/persistent_block_device_naming

Thanks,
Ming




More information about the Linux-nvme mailing list