[systemd-devel] udev virtio by-path naming

Viktor Mihajlovski mihajlov at linux.vnet.ibm.com
Wed Mar 1 18:28:46 UTC 2017


On 01.03.2017 16:58, Daniel P. Berrange wrote:
> On Wed, Mar 01, 2017 at 04:02:53PM +0100, Viktor Mihajlovski wrote:
>> On 01.03.2017 04:30, Zbigniew Jędrzejewski-Szmek wrote:
>>> On Tue, Feb 28, 2017 at 09:47:42AM +0100, Viktor Mihajlovski wrote:
>>>>>>>> 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.
>>>
>>> It seems that there's agreement that <subsystem>-<busid> is the right
>>> approach.
>>>
>>> Ideally we would keep the virtio-pci-<busid> links as they appear
>>> right now, for backwards compatibility, just for the pci devices, and
>>> mark them as deprecated (dunno where, maybe just in NEWS), and add the
>>> code to make the links.
>>>
>>> I haven't looked at the code, maybe we just do this with the right
>>> udev rule, and also stick the deprecation comment there?
>>>
>>> Zbyszek
>>>
>> I've posted a github pull request [1], and would appreciate review
>> feedback. As I am lacking an ARM setup, it would also be nice if someone
>> with ARM skills could have a look as well.
> 
> FYI you can install ARM7 guests on an x86_64 host, using pre-built Fedora
> images
> 
>   https://fedoraproject.org/wiki/QA:Testcase_Virt_ARM_on_x86
> 
> NB, this will install the guest using virtio-pci. So if you want to
> see virtio-mmio in action, you'll need to edit the libvirt XML config
> afterwards to add another disk, eg
> 
>     <disk type='file' device='disk'>
>       <driver name='qemu' type='qcow2'/>
>       <source file='/var/lib/libvirt/images/data.qcow2'/>
>       <target dev='vda' bus='virtio'/>
>       <address type='virtio-mmio'/>
>     </disk>
> 
> 
I might be stuck with a too old QEMU binary, the guest panics as soon as
the virtio-mmio module is loaded. If I drop to the dracut debug shell I
can see at least a number of mmio address slots(?)
ranging from a000000.virtio_mmio to a003e00.virtio_mmio.
>> If wanted, I can take a stab at virtio-mmio, but would need the output
>> of udevadm -a /dev/vda from a virtio-mmio system.
> 
> Presumably you mean 'udevadm info -a /dev/vda' ?  That reports the following,
yes, I always have to type the command twice :-(
> given a basic Fedora 25 guest, with a virtio-mmio disk added as per the
> guide above...
> 
>   looking at device '/devices/platform/a003e00.virtio_mmio/virtio3/block/vda':
>     KERNEL=="vda"
>     SUBSYSTEM=="block"
>     DRIVER==""
>     ATTR{alignment_offset}=="0"
>     ATTR{badblocks}==""
>     ATTR{cache_type}=="write back"
>     ATTR{capability}=="50"
>     ATTR{discard_alignment}=="0"
>     ATTR{ext_range}=="256"
>     ATTR{inflight}=="       0        0"
>     ATTR{range}=="16"
>     ATTR{removable}=="0"
>     ATTR{ro}=="0"
>     ATTR{serial}==""
>     ATTR{size}=="2097152"
>     ATTR{stat}=="      94        0     4208      285        0        0        0 
>        0        0      100      280"
> 
>   looking at parent device '/devices/platform/a003e00.virtio_mmio/virtio3':
>     KERNELS=="virtio3"
>     SUBSYSTEMS=="virtio"
>     DRIVERS=="virtio_blk"
>     ATTRS{device}=="0x0002"
>     ATTRS{features}=="0010101101110000000000000000110000000000000000000000000000
> 000000"
>     ATTRS{status}=="0x00000007"
>     ATTRS{vendor}=="0x554d4551"
> 
>   looking at parent device '/devices/platform/a003e00.virtio_mmio':
>     KERNELS=="a003e00.virtio_mmio"
>     SUBSYSTEMS=="platform"
>     DRIVERS=="virtio-mmio"
>     ATTRS{driver_override}=="(null)"
Since I can't do that on my box, would you be so kind to run
 ls -l /dev/disk/by-path
If it returns ids like
  virtio-pci-a003e00.virtio_mmio[-partn]
my suggested patch should be OK for ARM in that it will produce ids in
the format
  platform-a003e00.virtio_mmio[-partn]
> 
>   looking at parent device '/devices/platform':
>     KERNELS=="platform"
>     SUBSYSTEMS==""
>     DRIVERS==""
> 
> 
> 
> Regards,
> Daniel
> 


-- 

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