[systemd-devel] udev virtio by-path naming

Viktor Mihajlovski mihajlov at linux.vnet.ibm.com
Mon Feb 20 14:34:49 UTC 2017


Hi,

with systemd > v229 all virtio block devices will receive persistent
device names in the format /dev/disk-by/virtio-pci-<busid>, the
last component being the udev built-in path_id.

This naming introduces some issues.

First and obvious, there are virtio implementations not based
on PCI, like virtio-ccw (currently only on s390) and virtio-mmio
(for which I can't speak). This results in persistent names like
/dev/disk-by/virtio-pci-0.0.0001, where the bus id is a CCW id.
One seemingly obvious remedy would be to make the path_id return
virtio-ccw-<busid> or more generally virtio-<subsystem>-<busid>,
both easily done with small patches to systemd-udev.

But then, I find this naming scheme somewhat weird.
A virtio disk shows up as a regular PCI function on the PCI
bus side by side with other (non-virtio) devices. The naming otoh
suggests that virtio-pci is a subsystem of its own, which is simply
incorrect from a by-path perspective.

Using just the plain PCI path id is actually sufficient to identify
a virtio disk by its path. This would be in line with virtio
network interface path names which use the plain PCI naming.

One could argue about back-level compatibility, but virtio by-path
naming has changed multiple times. We have seen virtio-pci-virtio<n>
(not predictable), pci-<busid> and virtio-pci-<busid> already. It
might be a good time now to settle on a common approach for all
virtio types.

For the reasons above, I'd vote for <subsystem>-<busid>, which
would work for PCI and CCW, not sure about ARM MMIO though.
Opinions?

-- 

Mit freundlichen Grüßen/Kind Regards
   Viktor Mihajlovski

IBM Deutschland Research & Development GmbH
Vorsitzender des Aufsichtsrats: Martina Köderitz
Geschäftsführung: Dirk Wittkopp
Sitz der Gesellschaft: Böblingen
Registergericht: Amtsgericht Stuttgart, HRB 243294



More information about the systemd-devel mailing list