[libvirt] [PATCH v3 8/8] qemu: Support virtio-mmio transport for virtio on ARM
Cole Robinson
crobinso at redhat.com
Mon Sep 2 16:16:47 UTC 2013
On 09/02/2013 08:52 AM, Daniel P. Berrange wrote:
> On Fri, Aug 30, 2013 at 12:41:36PM -0400, Cole Robinson wrote:
>> Starting with qemu 1.6, the qemu-system-arm vexpress-a9 model has a
>> hardcoded virtio-mmio transport which enables attaching all virtio
>> devices.
>>
>> On the command line, we have to use virtio-XXX-device rather than
>> virtio-XXX-pci, thankfully s390 already set the precedent here so
>> it's fairly straight forward.
>>
>> At the XML level, this adds a new device address type virtio-mmio.
>> The controller and addressing don't have any subelements at the
>> moment because we they aren't needed for this usecase, but could
>> be added later if needed.
>>
>> Add a test case for an ARM guest with one of every virtio device
>> enabled.
>> ---
>> src/conf/domain_conf.c | 12 +++-
>> src/conf/domain_conf.h | 1 +
>> src/qemu/qemu_capabilities.c | 17 ++++--
>> src/qemu/qemu_capabilities.h | 2 +
>> src/qemu/qemu_command.c | 65 +++++++++++++++++-----
>> .../qemuxml2argv-arm-vexpressa9-virtio.args | 14 +++++
>> .../qemuxml2argv-arm-vexpressa9-virtio.xml | 45 +++++++++++++++
>> tests/qemuxml2argvtest.c | 4 ++
>> 8 files changed, 139 insertions(+), 21 deletions(-)
>> create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-arm-vexpressa9-virtio.args
>> create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-arm-vexpressa9-virtio.xml
>
> ACK
>
>
>> diff --git a/src/conf/domain_conf.h b/src/conf/domain_conf.h
>> index 380e2bb..1d70eba 100644
>> --- a/src/conf/domain_conf.h
>> +++ b/src/conf/domain_conf.h
>> @@ -207,6 +207,7 @@ enum virDomainDeviceAddressType {
>> VIR_DOMAIN_DEVICE_ADDRESS_TYPE_SPAPRVIO,
>> VIR_DOMAIN_DEVICE_ADDRESS_TYPE_VIRTIO_S390,
>> VIR_DOMAIN_DEVICE_ADDRESS_TYPE_CCW,
>> + VIR_DOMAIN_DEVICE_ADDRESS_TYPE_VIRTIO_MMIO,
>>
>> VIR_DOMAIN_DEVICE_ADDRESS_TYPE_LAST
>> };
>
> So there's no kind of address properties needed for the MMIO
> address type ?
There may be, when the qemu-system-arm -m virt machine lands, which AIUI will
behave more like qemu-system-x86, allowing us to fully specify topology on the
command line.
Right now the only virtio-mmio user (vexpress) hardcodes creation in the qemu
board init code. We might be able to explicitly specify addressing of virtio
devices with -device, but if we can it's not obvious to me, and it's pretty
pointless since we don't have that same control over the rest of the board config.
Long term I think the only qemu arm machine type we will really want to
'support' is -M virt since it's closer to what we are used to with x86.
- Cole
More information about the libvir-list
mailing list