[Pkg-libvirt-commits] [libvirt] 01/02: qemu: support virt-2.6 machine type on arm

Guido Guenther agx at moszumanska.debian.org
Fri Apr 15 07:15:30 UTC 2016


This is an automated email from the git hooks/post-receive script.

agx pushed a commit to annotated tag debian/1.3.3-2
in repository libvirt.

commit 64b60dbd026d2fdd0425d5d2beb99d8567871da1
Author: Guido Günther <agx at sigxcpu.org>
Date:   Fri Apr 15 08:44:02 2016 +0200

    qemu: support virt-2.6 machine type on arm
    
    Closes: #820952
---
 ...qemu-support-virt-2.6-machine-type-on-arm.patch | 166 +++++++++++++++++++++
 debian/patches/series                              |   1 +
 2 files changed, 167 insertions(+)

diff --git a/debian/patches/qemu-support-virt-2.6-machine-type-on-arm.patch b/debian/patches/qemu-support-virt-2.6-machine-type-on-arm.patch
new file mode 100644
index 0000000..9b9d6e1
--- /dev/null
+++ b/debian/patches/qemu-support-virt-2.6-machine-type-on-arm.patch
@@ -0,0 +1,166 @@
+From: =?utf-8?q?J=C3=A1n_Tomko?= <jtomko at redhat.com>
+Date: Fri, 8 Apr 2016 10:46:41 +0200
+Subject: qemu: support virt-2.6 machine type on arm
+
+Some places already check for "virt-" prefix as well as plain "virt".
+virQEMUCapsHasPCIMultiBus did not, resulting in multiple PCI devices
+having assigned the same unnumbered "pci" alias.
+
+Add a test for the "virt-2.6" machine type which also omits the
+<model type='virtio'/> in <interface>, to check if
+qemuDomainDefaultNetModel works too.
+
+https://bugzilla.redhat.com/show_bug.cgi?id=1325085
+
+Closes: #820952
+---
+ src/qemu/qemu_capabilities.c                       |  3 +-
+ src/qemu/qemu_domain.c                             |  3 +-
+ ...l2argv-aarch64-virt-2.6-virtio-pci-default.args | 37 +++++++++++++++++
+ ...ml2argv-aarch64-virt-2.6-virtio-pci-default.xml | 47 ++++++++++++++++++++++
+ tests/qemuxml2argvtest.c                           |  6 +++
+ 5 files changed, 94 insertions(+), 2 deletions(-)
+ create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-aarch64-virt-2.6-virtio-pci-default.args
+ create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-aarch64-virt-2.6-virtio-pci-default.xml
+
+diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c
+index 2823843..57e2056 100644
+--- a/src/qemu/qemu_capabilities.c
++++ b/src/qemu/qemu_capabilities.c
+@@ -2172,7 +2172,8 @@ bool virQEMUCapsHasPCIMultiBus(virQEMUCapsPtr qemuCaps,
+         /* If 'virt' supports PCI, it supports multibus.
+          * No extra conditions here for simplicity.
+          */
+-        if (STREQ(def->os.machine, "virt"))
++        if (STREQ(def->os.machine, "virt") ||
++            STRPREFIX(def->os.machine, "virt-"))
+             return true;
+     }
+ 
+diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c
+index f38b0f3..d9d5041 100644
+--- a/src/qemu/qemu_domain.c
++++ b/src/qemu/qemu_domain.c
+@@ -1479,7 +1479,8 @@ qemuDomainDefaultNetModel(const virDomainDef *def,
+         if (STREQ(def->os.machine, "versatilepb"))
+             return "smc91c111";
+ 
+-        if (STREQ(def->os.machine, "virt"))
++        if (STREQ(def->os.machine, "virt") ||
++            STRPREFIX(def->os.machine, "virt-"))
+             return "virtio";
+ 
+         /* Incomplete. vexpress (and a few others) use this, but not all
+diff --git a/tests/qemuxml2argvdata/qemuxml2argv-aarch64-virt-2.6-virtio-pci-default.args b/tests/qemuxml2argvdata/qemuxml2argv-aarch64-virt-2.6-virtio-pci-default.args
+new file mode 100644
+index 0000000..93c181d
+--- /dev/null
++++ b/tests/qemuxml2argvdata/qemuxml2argv-aarch64-virt-2.6-virtio-pci-default.args
+@@ -0,0 +1,37 @@
++LC_ALL=C \
++PATH=/bin \
++HOME=/home/test \
++USER=test \
++LOGNAME=test \
++QEMU_AUDIO_DRV=none \
++/usr/bin/qemu-system-aarch64 \
++-name aarch64test \
++-S \
++-M virt-2.6 \
++-cpu cortex-a53 \
++-m 1024 \
++-smp 1 \
++-uuid 496d7ea8-9739-544b-4ebd-ef08be936e8b \
++-nographic \
++-nodefconfig \
++-nodefaults \
++-monitor unix:/tmp/lib/domain--1-aarch64test/monitor.sock,server,nowait \
++-boot c \
++-kernel /aarch64.kernel \
++-initrd /aarch64.initrd \
++-append 'earlyprintk console=ttyAMA0,115200n8 rw root=/dev/vda rootwait' \
++-dtb /aarch64.dtb \
++-device i82801b11-bridge,id=pci.1,bus=pcie.0,addr=0x1 \
++-device pci-bridge,chassis_nr=2,id=pci.2,bus=pci.1,addr=0x1 \
++-device virtio-serial-device,id=virtio-serial0 \
++-usb \
++-drive file=/aarch64.raw,format=raw,if=none,id=drive-virtio-disk0 \
++-device virtio-blk-device,drive=drive-virtio-disk0,id=virtio-disk0 \
++-device virtio-net-device,vlan=0,id=net0,mac=52:54:00:09:a4:37 \
++-net user,vlan=0,name=hostnet0 \
++-serial pty \
++-chardev pty,id=charconsole1 \
++-device virtconsole,chardev=charconsole1,id=console1 \
++-device virtio-balloon-device,id=balloon0 \
++-object rng-random,id=objrng0,filename=/dev/random \
++-device virtio-rng-device,rng=objrng0,id=rng0
+diff --git a/tests/qemuxml2argvdata/qemuxml2argv-aarch64-virt-2.6-virtio-pci-default.xml b/tests/qemuxml2argvdata/qemuxml2argv-aarch64-virt-2.6-virtio-pci-default.xml
+new file mode 100644
+index 0000000..e745101
+--- /dev/null
++++ b/tests/qemuxml2argvdata/qemuxml2argv-aarch64-virt-2.6-virtio-pci-default.xml
+@@ -0,0 +1,47 @@
++<domain type="qemu">
++  <name>aarch64test</name>
++  <uuid>496d7ea8-9739-544b-4ebd-ef08be936e8b</uuid>
++  <memory>1048576</memory>
++  <currentMemory>1048576</currentMemory>
++  <vcpu placement='static'>1</vcpu>
++  <os>
++    <type arch="aarch64" machine="virt-2.6">hvm</type>
++    <kernel>/aarch64.kernel</kernel>
++    <initrd>/aarch64.initrd</initrd>
++    <dtb>/aarch64.dtb</dtb>
++    <cmdline>earlyprintk console=ttyAMA0,115200n8 rw root=/dev/vda rootwait</cmdline>
++  </os>
++  <features>
++    <acpi/>
++    <apic/>
++    <pae/>
++  </features>
++  <cpu match='exact'>
++    <model>cortex-a53</model>
++  </cpu>
++  <clock offset="utc"/>
++  <on_poweroff>destroy</on_poweroff>
++  <on_reboot>restart</on_reboot>
++  <on_crash>restart</on_crash>
++  <devices>
++    <emulator>/usr/bin/qemu-system-aarch64</emulator>
++    <disk type='file' device='disk'>
++      <source file='/aarch64.raw'/>
++      <target dev='vda' bus='virtio'/>
++    </disk>
++    <interface type='user'>
++      <mac address='52:54:00:09:a4:37'/>
++    </interface>
++    <console type='pty'/>
++    <console type='pty'>
++      <target type='virtio' port='0'/>
++    </console>
++    <memballoon model='virtio'/>
++    <!--
++      This actually doesn't work in practice because vexpress only has
++      4 virtio slots available, rng makes 5 -->
++    <rng model='virtio'>
++      <backend model='random'>/dev/random</backend>
++    </rng>
++  </devices>
++</domain>
+diff --git a/tests/qemuxml2argvtest.c b/tests/qemuxml2argvtest.c
+index e9b8d64..d1b9e98 100644
+--- a/tests/qemuxml2argvtest.c
++++ b/tests/qemuxml2argvtest.c
+@@ -1661,6 +1661,12 @@ mymain(void)
+             QEMU_CAPS_DEVICE_VIRTIO_RNG, QEMU_CAPS_OBJECT_RNG_RANDOM,
+             QEMU_CAPS_OBJECT_GPEX, QEMU_CAPS_DEVICE_PCI_BRIDGE,
+             QEMU_CAPS_DEVICE_DMI_TO_PCI_BRIDGE);
++    DO_TEST("aarch64-virt-2.6-virtio-pci-default",
++            QEMU_CAPS_NODEFCONFIG, QEMU_CAPS_DTB,
++            QEMU_CAPS_DEVICE_VIRTIO_MMIO,
++            QEMU_CAPS_DEVICE_VIRTIO_RNG, QEMU_CAPS_OBJECT_RNG_RANDOM,
++            QEMU_CAPS_OBJECT_GPEX, QEMU_CAPS_DEVICE_PCI_BRIDGE,
++            QEMU_CAPS_DEVICE_DMI_TO_PCI_BRIDGE);
+     /* Example of using virtio-pci with no explicit PCI controller
+        but with manual PCI addresses */
+     DO_TEST("aarch64-virtio-pci-manual-addresses",
diff --git a/debian/patches/series b/debian/patches/series
index 347f5e3..2760161 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -15,3 +15,4 @@ debian/apparmor_profiles_local_include.patch
 debian/libsystemd.patch
 virt-aa-helper-apparmor-allow-usr-share-OVMF-too.patch
 Link-xen-driver-against-libxl.patch
+qemu-support-virt-2.6-machine-type-on-arm.patch

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-libvirt/libvirt.git



More information about the Pkg-libvirt-commits mailing list