On Mon, Oct 24, 2016 at 05:17:07PM +0200, Andrea Bolognani wrote:
On Sat, 2016-10-22 at 23:07 -0400, Laine Stump wrote:
> (When I first saw your mail I didn't realize it was a patch, because it
> didn't have "PATCH" in the subject)
Fair enough, will send the next iteration as [RFC PATCH v2] :)
> I like that this makes pci truly the default in a simple manner, but
> still allows switching back to mmio if necessary. On the other hand, it
> puts the potential "switch" to decide whether or not to use mmio for all
> devices down into the config of a single device, which is a bit weird to
> explain. (On the other hand, how often will mmio be used in the future?
> Maybe it doesn't matter if it's weird to explain...)
We really want to push for virtio-pci going forward as it has
a number of advantages, but there are still legacy guest OSs
out there that don't support virtio-pci at all yet we still
want to be able to run.
Changing the default is usually a tricky part and may break some users.
I'm not sure that this will save the need to adapt management applications
and users. They will have to adapt in both cases to support legacy and
new OSes based on libosinfo or another tool/database. If we make virtio-pci
the default one, which I think is the way it should be used, they will have
to make sure that with new libvirt for the same OS they will fallback
to virtio-mmio.
From what I can remember we've never done such change of default device
model or default address and we always left it no management application
or user to change the default to better model. In case of management
applications it's not an issue because they will make sure that the best
device models and device address are used.
I'm not against changing the default to virtio-pci, but we may break
things for some users and management tools like virt-manager unless they
will adapt to this change.
virt-install is already capable of overriding the default
address type on a per-device basis, eg.
--network network=default,model=virtio,address.type=pci
or
--disk size=10,bus=virtio,address.type=virtio-mmio
I think we should have some sort of global switch that sets
address.type for all devices, so you don't have to repeat
yourself. Or does something like that exist already?
I'm also not sure whether virt-manager is using libosinfo,
but ideally the default address type would be something that
can be chosen automatically based on the guest OS. CC'ing
Cole and Pavel so they can provide some insights.
Virt-manager uses libosinfo and falls back to some sane hardcoded defaults.
This should be definitely added to libosinfo.
Pavel