On Tue, Jul 28, 2026 at 11:17:34PM +0300, Michael Tokarev wrote:
> On 7/28/26 22:45, Michael S. Tsirkin wrote:
> > On Tue, Jul 28, 2026 at 11:40:24AM +0300, Michael Tokarev wrote:
>
> ...
> > > > diff --git a/hw/core/machine.c b/hw/core/machine.c
> > > > index 805148678d..73b4d82b4a 100644
> > > > --- a/hw/core/machine.c
> > > > +++ b/hw/core/machine.c
> > > > @@ -41,6 +41,7 @@
> > > > #include "hw/arm/smmuv3.h"
> > > > GlobalProperty hw_compat_11_0[] = {
> > > > + { "virtio-mmio", VIRTIO_QUEUE_SIZE_OVERRIDE, "1024" },
> > >
> > > ..because it is adding a new field into the migration stream,
> > > which is a problem for stable series.
> >
> >
> > this is compat not a migration stream, right?
>
> Aha, yes, I was a bit tired today.
>
> > For stable, the value needs to be 1024 for all types.
>
> So this whole change, for older versions, becomes just:
>
> --- a/hw/virtio/virtio.c
> +++ b/hw/virtio/virtio.c
> @@ -2572,6 +2572,8 @@ VirtQueue *virtio_add_queue(VirtIODevice *vdev, int
> queue_size,
> if (i == VIRTIO_QUEUE_MAX || queue_size > VIRTQUEUE_MAX_SIZE)
> abort();
>
> + queue_size = VIRTQUEUE_MAX_SIZE; /* fixed properly in 11.1. */
> +
Or you can stick to upstream and add the compat entry for 11.0.
> vdev->vq[i].vring.num = queue_size;
> vdev->vq[i].vring.num_default = queue_size;
> vdev->vq[i].vring.align = VIRTIO_PCI_VRING_ALIGN;
>
>
> so we override supplied size just like when
> x-override-queue-size is set for compat-11.0 or earlier.
>
> Got it.
>
> Now, the fun continues - this is the first time in qemu history
> when a bigger change reduces in stable series into such a one-liner :)
>
> Thanks,
>
> /mjt