[dm-devel] Question about dmsetup / udev interactions

Peter Desnoyers pjd at ccs.neu.edu
Thu Jan 19 22:43:53 UTC 2017


I'm not quite sure where to start with this. We've got a device mapper target (implementing a translation layer over shingled disk) where a lot of the functionality is up at user level. In our current design, when the target is first created it doesn't have any mapping information, and so must block all I/Os until the user space daemon has fed that information to it, after which it unblocks any pending I/Os.

The problem we have is a deadlock with udev - when the target device appears, udev seems to try to read its partition table, hanging until the userspace daemon sends the map down and enables I/Os. However some versions of dmsetup / libdevmapper interact with udev, so the device doesn't get created (and thus we can't feed it the map) because we're blocked on udevd.

At the moment we're not really sure where to start looking to figure a way out of this - would it be a udev rules change or something simple like that? Or for now should we just rebuild the LVM tools with one or two of the thirty-odd options set to a different value?

Any suggestions on which direction we should start looking would be welcome.

Thanks,
.....................................................................
 Peter Desnoyers                                  pjd at ccs.neu.edu
 Northeastern Computer & Information Science      (617) 373-8683







More information about the dm-devel mailing list