Bug 1231727 - use virtio-mmio for older distros that don't support virtio-pci
Summary: use virtio-mmio for older distros that don't support virtio-pci
Keywords:
Status: CLOSED WONTFIX
Alias: None
Product: Virtualization Tools
Classification: Community
Component: virt-manager
Version: unspecified
Hardware: aarch64
OS: Unspecified
high
medium
Target Milestone: ---
Assignee: Cole Robinson
QA Contact: Virtualization Bugs
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2015-06-15 10:00 UTC by Andrew Jones
Modified: 2018-10-03 23:22 UTC (History)
14 users (show)

Fixed In Version:
Clone Of:
: 1244151 (view as bug list)
Environment:
Last Closed: 2018-10-03 23:22:38 UTC
Embargoed:


Attachments (Terms of Use)

Description Andrew Jones 2015-06-15 10:00:53 UTC
The mach-virt model has had a PCIe host bridge since v2.3 (so it's already in qemu-kvm-rhev). The RHELSA kernel now has support for that PCI host bridge when booting using ACPI. So, with backporting the ACPI generation patches to QEMU (bug 1231719), it's possible to boot RHELSA using only virtio-pci (no more virtio-mmio!). 

It's time to switch the options and defaults in the install tools. (We may need libvirt changes as well, as I couldn't figure out the right XML to convert a libvirt guest to use PCI. It seems libvirt doesn't know that the 'virt' machine type has a PCIe host bridge.)

Comment 4 Pavel Hrdina 2016-06-01 13:33:57 UTC
I guess that there is nothing to do from virt-manager side.  The addressing is completely up to libvirt.  Virt-manager creates a device with "bus='virtio'" and libvirt will assing best possible address.  This bug can be closed and only the libvirt part is relevant.

*** This bug has been marked as a duplicate of bug 1244151 ***

Comment 5 Cole Robinson 2016-06-01 13:54:36 UTC
we didn't find a way to make this 'just work' in libvirt, so support in the tools is required. virt-manager/virt-install will need to explicitly request <address type='pci'/> if we know the OS supports it. reopening

Comment 6 Pavel Hrdina 2016-06-01 14:36:30 UTC
Right, we decided that this would be based on the guest OS and libosinfo.  So this needs to be implemented into virt-manager and ask for pci only for OSes that supports pci for ARM.

Comment 8 Pavel Hrdina 2017-03-01 15:26:16 UTC
Libvirt will use PCI addresses by default since version 3.0.0 so there is nothing for it in virt-manager.  However the virt-manager could be improved to decide not to use PCI addresses for older guests or to explicitly ask for PCI addresses if libvirt is older than 3.0.0 and the guest is new enough to support PCI addresses.

I'll move this bug to upstream to track this feature.  This would also require to add those data into osinfo-db.

Comment 9 Cole Robinson 2017-06-27 18:32:55 UTC
In my testing fedora25+ seems to work fine with virtio-pci, but not Fedora 24 (and presumably earlier). Since F24 is EOL in a few months I'm not sure if I care enough to try and make this work :) but maybe other more recent distros still have issues with virtio-pci, so I'll leave this open for a while

Comment 10 Cole Robinson 2018-10-03 23:22:38 UTC
No one has ever once complained about this in practice, so I don't think it's worth worrying about in virt-install/virt-manager


Note You need to log in before you can comment on or make changes to this bug.