On Tue, Nov 12, 2024 at 09:12:06AM +0000, Daniel P. Berrangé wrote:
On Mon, Nov 11, 2024 at 09:27:00AM +0100, Martin Kletzander wrote:
> > +Virtio device models
> > +~~~~~~~~~~~~~~~~~~~~
> > +
> > +Virtio devices come in several variants, some of which are only applicable to
> > +certain machine types or scenarios. The variant can be chosen via the
``model``
> > +attribute, which supports the following values:
> >
> > -:since:`Since 5.2.0`, some of QEMU's virtio devices, when used with
PCI/PCIe
> > -machine types, accept the following ``model`` values:
> > +``virtio``
> > + This is the recommended choice in the absence of guest OS specific
> > + constraints, as it will will generally work correctly across a large range
> > + of architectures, machine types and libvirt versions.
> > +
> > +:since:`Since 5.2.0`, the following values can additionally be used with
machine
> > +types based on PCI (either conventional PCI or PCI Express):
>
> I think that you cannot specify model='virtio' before 5.2.0. Maybe what
> Daniel suggested, keeping the mention of compatibility with older
> versions is the better way to go. From the above one might think that
> model='virtio' will work on older libvirt, and it will look like it
> does, but it won't get parsed.
It is perhaps more accurate to say
"virtio" is equivalent to omitting the attribute entirely, reflecting
the historical default behaviour of libvirt prior to 5.2.0.
That's only true for the devices that didn't accept the model
attribute before 5.2.0. <interface> is the obvious counter-example,
where specifying model=virtio and omitting the attribute have always
resulted in different behaviors.
As explained in my other reply, I think it's okay to omit the fine
details here and just provide an overview of the possible values and
the scenarios to which each is applicable, in order to help the user
make an informed choice. The documentation for each element is the
source of truth when it comes to when it started supporting the
attribute and its various values.
--
Andrea Bolognani / Red Hat / Virtualization