[meta-virtualization] [PATCH] libvirt: Fix bug in assigning virtio-mmio disks with qemu
Bruce Ashfield
bruce.ashfield at gmail.com
Thu Apr 7 07:55:05 PDT 2016
On Thu, Apr 7, 2016 at 5:13 AM, Bogdan Purcareata <bogdan.purcareata at nxp.com
> wrote:
> On 07.04.2016 09:57, Bruce Ashfield wrote:
> > On Tue, Apr 5, 2016 at 11:48 AM, Bogdan Purcareata <
> > bogdan.purcareata at nxp.com> wrote:
> >
> >> Patch contains a more detailed description. Basically allows adding
> >> virtio-mmio
> >> block device to QEMU guests. Tested on ARM64.
> >>
> >> Please apply on jethro branch.
> >>
> >
> > We don't want to create functionality on old branches that isn't also on
> > master.
> > Is there any reason why this wouldn't be applicable to master as well ?
>
> Master delivers libvirt 1.3.2 [1] which has this patch included:
>
> [libvirt]$ git checkout v1.3.2 && git log --pretty=oneline | grep "Ignore
> virtio-mmio"
> d526e37bad2515cf91caa0e4ff3edaf41e45b5c2 Ignore virtio-mmio disks in
> qemuAssignDevicePCISlots()
>
Great. Just what I was looking for .. I hadn't looked all the way down into
the embedded
patch, where I see the info was included via the upstream status.
merged to jethro.
Bruce
>
> [1]
>
> https://git.yoctoproject.org/cgit/cgit.cgi/meta-virtualization/tree/recipes-extended/libvirt
>
> Thank you,
> Bogdan P.
>
> >>
> >> Signed-off-by: Bogdan Purcareata <bogdan.purcareata at nxp.com>
> >> ---
> >> ...io-mmio-disks-in-qemuAssignDevicePCISlots.patch | 81
> >> ++++++++++++++++++++++
> >> recipes-extended/libvirt/libvirt_1.2.19.bb | 1 +
> >> 2 files changed, 82 insertions(+)
> >> create mode 100644
> >>
> recipes-extended/libvirt/libvirt/Ignore-virtio-mmio-disks-in-qemuAssignDevicePCISlots.patch
> >>
> >> diff --git
> >>
> a/recipes-extended/libvirt/libvirt/Ignore-virtio-mmio-disks-in-qemuAssignDevicePCISlots.patch
> >>
> b/recipes-extended/libvirt/libvirt/Ignore-virtio-mmio-disks-in-qemuAssignDevicePCISlots.patch
> >> new file mode 100644
> >> index 0000000..f0b7ab5
> >> --- /dev/null
> >> +++
> >>
> b/recipes-extended/libvirt/libvirt/Ignore-virtio-mmio-disks-in-qemuAssignDevicePCISlots.patch
> >> @@ -0,0 +1,81 @@
> >> +From d526e37bad2515cf91caa0e4ff3edaf41e45b5c2 Mon Sep 17 00:00:00 2001
> >> +From: Pavel Fedin <p.fedin at samsung.com>
> >> +Date: Wed, 9 Sep 2015 15:02:53 +0300
> >> +Subject: [PATCH] Ignore virtio-mmio disks in qemuAssignDevicePCISlots()
> >> +
> >> +Fixes the following error when attempting to add a disk with
> bus='virtio'
> >> +to a machine which actually supports virtio-mmio (caught with ARM
> virt):
> >> +
> >> +virtio disk cannot have an address of type 'virtio-mmio'
> >> +
> >> +The problem has been likely introduced by
> >> +e8d55172544c1fafe31a9e09346bdebca4f0d6f9. Before that
> >> +qemuAssignDevicePCISlots() was never called for ARM "virt" machine.
> >> +
> >> +Upstream-status: Accepted
> >> +[
> >>
> https://libvirt.org/git/?p=libvirt.git;a=commit;h=d526e37bad2515cf91caa0e4ff3edaf41e45b5c2
> >> ]
> >> +
> >> +Signed-off-by: Pavel Fedin <p.fedin at samsung.com>
> >> +---
> >> + src/qemu/qemu_command.c | 11 +++++++++--
> >> + src/qemu/qemu_command.h | 1 +
> >> + 2 files changed, 10 insertions(+), 2 deletions(-)
> >> +
> >> +diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c
> >> +index b56670c..25f57f2 100644
> >> +--- a/src/qemu/qemu_command.c
> >> ++++ b/src/qemu/qemu_command.c
> >> +@@ -2261,7 +2261,7 @@ qemuDomainAssignPCIAddresses(virDomainDefPtr def,
> >> + virDomainPCIAddressReserveNextSlot(addrs, &info,
> flags)
> >> < 0)
> >> + goto cleanup;
> >> +
> >> +- if (qemuAssignDevicePCISlots(def, addrs) < 0)
> >> ++ if (qemuAssignDevicePCISlots(def, qemuCaps, addrs) < 0)
> >> + goto cleanup;
> >> +
> >> + for (i = 1; i < addrs->nbuses; i++) {
> >> +@@ -2294,7 +2294,7 @@ qemuDomainAssignPCIAddresses(virDomainDefPtr def,
> >> + if (qemuValidateDevicePCISlotsChipsets(def, qemuCaps,
> addrs)
> >> < 0)
> >> + goto cleanup;
> >> +
> >> +- if (qemuAssignDevicePCISlots(def, addrs) < 0)
> >> ++ if (qemuAssignDevicePCISlots(def, qemuCaps, addrs) < 0)
> >> + goto cleanup;
> >> +
> >> + for (i = 0; i < def->ncontrollers; i++) {
> >> +@@ -2426,6 +2426,7 @@ qemuDomainAssignPCIAddresses(virDomainDefPtr def,
> >> + */
> >> + int
> >> + qemuAssignDevicePCISlots(virDomainDefPtr def,
> >> ++ virQEMUCapsPtr qemuCaps,
> >> + virDomainPCIAddressSetPtr addrs)
> >> + {
> >> + size_t i, j;
> >> +@@ -2618,6 +2619,12 @@ qemuAssignDevicePCISlots(virDomainDefPtr def,
> >> + VIR_DOMAIN_DEVICE_ADDRESS_TYPE_CCW)
> >> + continue;
> >> +
> >> ++ /* Also ignore virtio-mmio disks if our machine allows them */
> >> ++ if (def->disks[i]->info.type ==
> >> ++ VIR_DOMAIN_DEVICE_ADDRESS_TYPE_VIRTIO_MMIO &&
> >> ++ virQEMUCapsGet(qemuCaps, QEMU_CAPS_DEVICE_VIRTIO_MMIO))
> >> ++ continue;
> >> ++
> >> + if (def->disks[i]->info.type !=
> >> VIR_DOMAIN_DEVICE_ADDRESS_TYPE_NONE) {
> >> + virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
> >> + _("virtio disk cannot have an address of
> type
> >> '%s'"),
> >> +diff --git a/src/qemu/qemu_command.h b/src/qemu/qemu_command.h
> >> +index 767d31f..4aa7f2d 100644
> >> +--- a/src/qemu/qemu_command.h
> >> ++++ b/src/qemu/qemu_command.h
> >> +@@ -284,6 +284,7 @@ virDomainPCIAddressSetPtr
> >> qemuDomainPCIAddressSetCreate(virDomainDefPtr def,
> >> + bool dryRun);
> >> +
> >> + int qemuAssignDevicePCISlots(virDomainDefPtr def,
> >> ++ virQEMUCapsPtr qemuCaps,
> >> + virDomainPCIAddressSetPtr addrs);
> >> +
> >> + int qemuAssignDeviceAliases(virDomainDefPtr def, virQEMUCapsPtr
> >> qemuCaps);
> >> +--
> >> +1.9.1
> >> +
> >> diff --git a/recipes-extended/libvirt/libvirt_1.2.19.bb
> >> b/recipes-extended/libvirt/libvirt_1.2.19.bb
> >> index df53d59..774eea4 100644
> >> --- a/recipes-extended/libvirt/libvirt_1.2.19.bb
> >> +++ b/recipes-extended/libvirt/libvirt_1.2.19.bb
> >> @@ -33,6 +33,7 @@ SRC_URI = "
> >> http://libvirt.org/sources/libvirt-${PV}.tar.gz;name=libvirt \
> >> file://libvirt-use-pkg-config-to-locate-libcap.patch \
> >> file://0001-to-fix-build-error.patch \
> >> file://Revert-build-add-prefix-to-SYSTEMD_UNIT_DIR.patch \
> >> +
> >> file://Ignore-virtio-mmio-disks-in-qemuAssignDevicePCISlots.patch \
> >> "
> >>
> >> SRC_URI[libvirt.md5sum] = "bc3ab1ba5b6fabd2e4516c70ddd4d97c"
> >> --
> >> 1.9.1
> >>
> >> --
> >> _______________________________________________
> >> meta-virtualization mailing list
> >> meta-virtualization at yoctoproject.org
> >> https://lists.yoctoproject.org/listinfo/meta-virtualization
> >>
> >
> >
> >
>
--
"Thou shalt not follow the NULL pointer, for chaos and madness await thee
at its end"
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.yoctoproject.org/pipermail/meta-virtualization/attachments/20160407/77439031/attachment.html>
More information about the meta-virtualization
mailing list