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