On Tue, May 13, 2025 at 13:28:58 +0100, Daniel P. Berrangé wrote:
> On Tue, May 13, 2025 at 02:25:51PM +0200, Peter Krempa via Devel wrote:
> > From: Peter Krempa <pkre...@redhat.com>
> > 
> > While the queue count itself is not a guest visible property, libvirt
> > uses it to calculate the 'vectors' property of the 'virtio-net' device
> > which is ABI.
> > 
> > Since we don't expose control of 'vectors' explicitly, consider 'queues'
> > ABI.
> > 
> > Signed-off-by: Peter Krempa <pkre...@redhat.com>
> > ---
> >  src/conf/domain_conf.c | 11 +++++++++++
> >  1 file changed, 11 insertions(+)

Per your off-list suggestion I'll be adding a comment to the formula
in qemuBuildNicDevProps which calculates 'vectors' to state that it's
guest ABI and must not change: 


        if (net->driver.virtio.queues > 1) {
            if (net->info.type == VIR_DOMAIN_DEVICE_ADDRESS_TYPE_CCW) {
                /* ccw provides a one to one relation of fds to queues and
                 * does not support the vectors option
                 */
                mq = VIR_TRISTATE_SWITCH_ON;
            } else {
                /* As advised at https://www.linux-kvm.org/page/Multiqueue
                 * we should add vectors=2*N+2 where N is the vhostfdSize
                 */
                mq = VIR_TRISTATE_SWITCH_ON;
+               /* As 'vectors' is a guest-OS visible property and thus
+                * guest ABI this formula *MUST NOT* change */
                vectors = 2 * net->driver.virtio.queues + 2;
            }
        }



> 
> Reviewed-by: Daniel P. Berrangé <berra...@redhat.com>
> 
> 
> With regards,
> Daniel
> -- 
> |: https://berrange.com      -o-    https://www.flickr.com/photos/dberrange :|
> |: https://libvirt.org         -o-            https://fstop138.berrange.com :|
> |: https://entangle-photo.org    -o-    https://www.instagram.com/dberrange :|
> 

Reply via email to