[libvirt] [PATCH] Allow PCI virtio on ARM "virt" machine

Cole Robinson crobinso at redhat.com
Tue May 26 15:42:30 UTC 2015

On 05/26/2015 03:19 AM, Pavel Fedin wrote:
>  Hi!
>> I think you'll need to add a new qemu capabilities flag
>> like QEMU_CAPS_AARCH64_VIRT_PCI that's enabled for qemu 2.3.0 or later... if
>> it's available, then we default to PCI.
>  How could i check for this ? Actually qemu already has PCI for both 32 and 64-bit virt
> board for quite some time. But the only way to check this is to run qemu. It does not
> expose any additional options for that. Or do you suggest just to check version number ?

Yes you'd likely need to tie it to qemu version number. From looking at the
git log I though this was only available in qemu 2.3.0 and later but it sounds
like you are saying it has been around longer...

>>>  "virt-" prefix is intentionally ignored in third chunk because it is a temporary
> thing
>>> and qemu developers agreed to use "gic version" option, for which there is already
> support
>>> in libvirt.
>> I don't follow this, can you expand a bit? Maybe Michal can explain too since
>> he did the libvirt gic patches
>  Sorry, ignore this because i was telling crap :)
>  I suggested that it was added just in case, because we are working on qemu mailing list
> on implementing GICv3 support, and my current solution is to add a new "virt-v3" machine.
> I tried an option but there are some technical difficulties about it. So perhaps it will
> stay "virt-v3" or "virt-gicv3" or something like that.
>  But i found this commit in libvirt history, and it is explained that it's actually for
> distro maintainers who might want to add their own virt-something machines.

Ah okay. I though you were saying that new -M virt behavior would be keyed off
of some gic= value or something like that.

We really should get -M virt versioning sooner rather than later though,
especially with stuff like PCI support being added.

>> Another thing is we probably need to extend the XML parser to add a
>> <controller type='pci'> automatically like we do for x86.
>> I can help with some of this if you want, just let me know.
>  Yes, please, would be nice because i'm not much into that XML stuff... I've seen
> notations like address type='pci' and then it's necessary to specify the location. But
> this requires some extra magic, like i need to specify that the machine has a controller
> (otherwise libvirt complains that i don't have a free slot), and i'm not sure that all
> these problems make sense for qemu, since qemu (AFAIK) does not allow to explicitly pin
> down devices on the PCI bus.

For x86 you definitely can specify PCI device addresses via -device, but maybe
that doesn't apply here.

I'll see if I can get some time to look at this stuff before end of the week.

- Cole

More information about the libvir-list mailing list