Re: [PULL v2 09/30] virtio-mmio: fix QUEUE_NUM_MAX

Michael Tokarev <[email protected]>
Newsgroups gmane.comp.emulators.qemu.stable,gmane.comp.emulators.qemu
Message-ID <[email protected]>
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. */
+
      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
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.