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(+) diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c index 542d6ade91..b3b0bd7329 100644 --- a/src/conf/domain_conf.c +++ b/src/conf/domain_conf.c @@ -20801,6 +20801,17 @@ virDomainNetDefCheckABIStability(virDomainNetDef *src, return false; } + /* The number of queues is used to calculate the value for 'vectors' + * (see qemuBuildNicDevProps) which is machine ABI thus we need to ensure + * that the number of queues is kept in sync */ + if (virDomainNetIsVirtioModel(src) && + (src->driver.virtio.queues != dst->driver.virtio.queues)) { + virReportError(VIR_ERR_CONFIG_UNSUPPORTED, + _("Target virtio network queue count '%1$d' does not match source '%2$d'"), + dst->driver.virtio.queues, src->driver.virtio.queues); + return false; + } + if (!virDomainVirtioOptionsCheckABIStability(src->virtio, dst->virtio)) return false; -- 2.49.0