Messages in this thread | | | Date | Mon, 15 Aug 2022 14:28:39 -0700 | From | Andres Freund <> | Subject | Re: [PATCH] virtio_net: Revert "virtio_net: set the default max ring size by find_vqs()" |
| |
Hi,
On 2022-08-15 17:04:10 -0400, Michael S. Tsirkin wrote: > So virtio has a queue_size register. When read, it will give you > originally the maximum queue size. Normally we just read it and > use it as queue size. > > However, when queue memory allocation fails, and unconditionally with a > network device with the problematic patch, driver is asking the > hypervisor to make the ring smaller by writing a smaller value into this > register. > > I suspect that what happens is hypervisor still uses the original value > somewhere.
It looks more like the host is never told about the changed size for legacy devices...
Indeed, adding a vp_legacy_set_queue_size() & call to it to setup_vq(), makes 5.19 + restricting queue sizes to 1024 boot again. I'd bet that it also would fix 6.0rc1, but I'm running out of time to test that.
Greetings,
Andres Freund
| |