From: Peter Krempa <pkrempa(a)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 <pkrempa(a)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