[libvirt] [PATCH v2] qemu: Use virtio network device for aarch64/virt
Cole Robinson
crobinso at redhat.com
Wed Feb 19 15:51:22 UTC 2014
On 02/14/2014 09:09 AM, Oleg Strikov wrote:
> This patch changes network device type used by default from rtl8139
> to virtio when architecture type is aarch64 and machine type is virt.
> Qemu doesn't support any other machine types for aarch64 right now and
> we can't make any other aarch64-specific tuning in this function yet.
>
> Signed-off-by: Oleg Strikov <oleg.strikov at canonical.com>
> ---
>
> Changes since v1:
> * qemuxml2argvtest suite has been extended to validate correct setup
> for aarch64 guests when no NIC model is provided in the XML
>
>
ACK, pushed now.
- Cole
> src/qemu/qemu_domain.c | 3 ++-
> .../qemuxml2argv-aarch64-virt-default-nic.args | 6 ++++++
> .../qemuxml2argv-aarch64-virt-default-nic.xml | 22 ++++++++++++++++++++
> tests/qemuxml2argvtest.c | 3 +++
> 4 files changed, 33 insertions(+), 1 deletion(-)
> create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-aarch64-virt-default-nic.args
> create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-aarch64-virt-default-nic.xml
>
> diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c
> index a665061..9a040ee 100644
> --- a/src/qemu/qemu_domain.c
> +++ b/src/qemu/qemu_domain.c
> @@ -797,7 +797,8 @@ qemuDomainDefaultNetModel(const virDomainDef *def)
> def->os.arch == VIR_ARCH_S390X)
> return "virtio";
>
> - if (def->os.arch == VIR_ARCH_ARMV7L) {
> + if (def->os.arch == VIR_ARCH_ARMV7L ||
> + def->os.arch == VIR_ARCH_AARCH64) {
> if (STREQ(def->os.machine, "versatilepb"))
> return "smc91c111";
>
> diff --git a/tests/qemuxml2argvdata/qemuxml2argv-aarch64-virt-default-nic.args b/tests/qemuxml2argvdata/qemuxml2argv-aarch64-virt-default-nic.args
> new file mode 100644
> index 0000000..d4d403b
> --- /dev/null
> +++ b/tests/qemuxml2argvdata/qemuxml2argv-aarch64-virt-default-nic.args
> @@ -0,0 +1,6 @@
> +LC_ALL=C PATH=/bin HOME=/home/test USER=test LOGNAME=test QEMU_AUDIO_DRV=none \
> +/usr/bin/qemu-system-aarch64 -S -M virt -m 1024 -smp 1 -nographic \
> +-nodefconfig -nodefaults -monitor unix:/tmp/test-monitor,server,nowait \
> +-boot c -kernel /aarch64.kernel -initrd /aarch64.initrd -append console=ttyAMA0 \
> +-usb -device virtio-net-device,vlan=0,id=net0,mac=52:54:00:09:a4:37 \
> +-net user,vlan=0,name=hostnet0
> diff --git a/tests/qemuxml2argvdata/qemuxml2argv-aarch64-virt-default-nic.xml b/tests/qemuxml2argvdata/qemuxml2argv-aarch64-virt-default-nic.xml
> new file mode 100644
> index 0000000..868de94
> --- /dev/null
> +++ b/tests/qemuxml2argvdata/qemuxml2argv-aarch64-virt-default-nic.xml
> @@ -0,0 +1,22 @@
> +<domain type="qemu">
> + <name>aarch64-virt-default-nic</name>
> + <uuid>6ba410c5-1e5c-4d57-bee7-2228e7ffa32f</uuid>
> + <memory>1048576</memory>
> + <currentMemory>1048576</currentMemory>
> + <vcpu>1</vcpu>
> + <features>
> + <acpi/>
> + </features>
> + <os>
> + <type arch="aarch64" machine="virt">hvm</type>
> + <kernel>/aarch64.kernel</kernel>
> + <initrd>/aarch64.initrd</initrd>
> + <cmdline>console=ttyAMA0</cmdline>
> + </os>
> + <devices>
> + <emulator>/usr/bin/qemu-system-aarch64</emulator>
> + <interface type='user'>
> + <mac address='52:54:00:09:a4:37'/>
> + </interface>
> + </devices>
> +</domain>
> diff --git a/tests/qemuxml2argvtest.c b/tests/qemuxml2argvtest.c
> index 7a5b50d..43ac1d1 100644
> --- a/tests/qemuxml2argvtest.c
> +++ b/tests/qemuxml2argvtest.c
> @@ -1335,6 +1335,9 @@ mymain(void)
> QEMU_CAPS_DEVICE, QEMU_CAPS_NODEFCONFIG, QEMU_CAPS_DTB,
> QEMU_CAPS_DRIVE, QEMU_CAPS_DEVICE_VIRTIO_MMIO,
> QEMU_CAPS_DEVICE_VIRTIO_RNG, QEMU_CAPS_OBJECT_RNG_RANDOM);
> + DO_TEST("aarch64-virt-default-nic",
> + QEMU_CAPS_DEVICE, QEMU_CAPS_NODEFCONFIG,
> + QEMU_CAPS_DEVICE_VIRTIO_MMIO);
>
> DO_TEST("kvm-pit-device", QEMU_CAPS_KVM_PIT_TICK_POLICY);
> DO_TEST("kvm-pit-delay", QEMU_CAPS_NO_KVM_PIT);
>
More information about the libvir-list
mailing list