[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