]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
qemu: Reimplement 'qemuDomainValidateBlockIoTune' using 'virTypedParamsValidateTemplate'
authorPeter Krempa <pkrempa@redhat.com>
Thu, 23 Apr 2026 11:28:43 +0000 (13:28 +0200)
committerPeter Krempa <pkrempa@redhat.com>
Thu, 14 May 2026 10:13:10 +0000 (12:13 +0200)
Make the block io tuning params introspectable.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
src/qemu/qemu_driver.c

index 569ee4683102dc57e91344f888973c095b02b4c6..521b1b3f948c99fe5b21a2b1bf050a31f09385e5 100644 (file)
@@ -15350,57 +15350,29 @@ qemuDomainCheckBlockIoTuneReset(virDomainDiskDef *disk,
 }
 
 
-static int
-qemuDomainValidateBlockIoTune(virTypedParameterPtr params,
-                              int nparams)
-{
-    if (virTypedParamsValidate(params, nparams,
-                               VIR_DOMAIN_BLOCK_IOTUNE_TOTAL_BYTES_SEC,
-                               VIR_TYPED_PARAM_ULLONG,
-                               VIR_DOMAIN_BLOCK_IOTUNE_READ_BYTES_SEC,
-                               VIR_TYPED_PARAM_ULLONG,
-                               VIR_DOMAIN_BLOCK_IOTUNE_WRITE_BYTES_SEC,
-                               VIR_TYPED_PARAM_ULLONG,
-                               VIR_DOMAIN_BLOCK_IOTUNE_TOTAL_IOPS_SEC,
-                               VIR_TYPED_PARAM_ULLONG,
-                               VIR_DOMAIN_BLOCK_IOTUNE_READ_IOPS_SEC,
-                               VIR_TYPED_PARAM_ULLONG,
-                               VIR_DOMAIN_BLOCK_IOTUNE_WRITE_IOPS_SEC,
-                               VIR_TYPED_PARAM_ULLONG,
-                               VIR_DOMAIN_BLOCK_IOTUNE_TOTAL_BYTES_SEC_MAX,
-                               VIR_TYPED_PARAM_ULLONG,
-                               VIR_DOMAIN_BLOCK_IOTUNE_READ_BYTES_SEC_MAX,
-                               VIR_TYPED_PARAM_ULLONG,
-                               VIR_DOMAIN_BLOCK_IOTUNE_WRITE_BYTES_SEC_MAX,
-                               VIR_TYPED_PARAM_ULLONG,
-                               VIR_DOMAIN_BLOCK_IOTUNE_TOTAL_IOPS_SEC_MAX,
-                               VIR_TYPED_PARAM_ULLONG,
-                               VIR_DOMAIN_BLOCK_IOTUNE_READ_IOPS_SEC_MAX,
-                               VIR_TYPED_PARAM_ULLONG,
-                               VIR_DOMAIN_BLOCK_IOTUNE_WRITE_IOPS_SEC_MAX,
-                               VIR_TYPED_PARAM_ULLONG,
-                               VIR_DOMAIN_BLOCK_IOTUNE_SIZE_IOPS_SEC,
-                               VIR_TYPED_PARAM_ULLONG,
-                               VIR_DOMAIN_BLOCK_IOTUNE_GROUP_NAME,
-                               VIR_TYPED_PARAM_STRING,
-                               VIR_DOMAIN_BLOCK_IOTUNE_TOTAL_BYTES_SEC_MAX_LENGTH,
-                               VIR_TYPED_PARAM_ULLONG,
-                               VIR_DOMAIN_BLOCK_IOTUNE_READ_BYTES_SEC_MAX_LENGTH,
-                               VIR_TYPED_PARAM_ULLONG,
-                               VIR_DOMAIN_BLOCK_IOTUNE_WRITE_BYTES_SEC_MAX_LENGTH,
-                               VIR_TYPED_PARAM_ULLONG,
-                               VIR_DOMAIN_BLOCK_IOTUNE_TOTAL_IOPS_SEC_MAX_LENGTH,
-                               VIR_TYPED_PARAM_ULLONG,
-                               VIR_DOMAIN_BLOCK_IOTUNE_READ_IOPS_SEC_MAX_LENGTH,
-                               VIR_TYPED_PARAM_ULLONG,
-                               VIR_DOMAIN_BLOCK_IOTUNE_WRITE_IOPS_SEC_MAX_LENGTH,
-                               VIR_TYPED_PARAM_ULLONG,
-                               NULL) < 0)
-        return -1;
-
-    return 0;
-}
-
+const virTypedParamValidationTemplate qemuDomainBlockIoTuneParametersValidation[] = {
+    { VIR_DOMAIN_BLOCK_IOTUNE_TOTAL_BYTES_SEC, VIR_TYPED_PARAM_ULLONG },
+    { VIR_DOMAIN_BLOCK_IOTUNE_READ_BYTES_SEC, VIR_TYPED_PARAM_ULLONG },
+    { VIR_DOMAIN_BLOCK_IOTUNE_WRITE_BYTES_SEC, VIR_TYPED_PARAM_ULLONG },
+    { VIR_DOMAIN_BLOCK_IOTUNE_TOTAL_IOPS_SEC, VIR_TYPED_PARAM_ULLONG },
+    { VIR_DOMAIN_BLOCK_IOTUNE_READ_IOPS_SEC, VIR_TYPED_PARAM_ULLONG },
+    { VIR_DOMAIN_BLOCK_IOTUNE_WRITE_IOPS_SEC, VIR_TYPED_PARAM_ULLONG },
+    { VIR_DOMAIN_BLOCK_IOTUNE_TOTAL_BYTES_SEC_MAX, VIR_TYPED_PARAM_ULLONG },
+    { VIR_DOMAIN_BLOCK_IOTUNE_READ_BYTES_SEC_MAX, VIR_TYPED_PARAM_ULLONG },
+    { VIR_DOMAIN_BLOCK_IOTUNE_WRITE_BYTES_SEC_MAX, VIR_TYPED_PARAM_ULLONG },
+    { VIR_DOMAIN_BLOCK_IOTUNE_TOTAL_IOPS_SEC_MAX, VIR_TYPED_PARAM_ULLONG },
+    { VIR_DOMAIN_BLOCK_IOTUNE_READ_IOPS_SEC_MAX, VIR_TYPED_PARAM_ULLONG },
+    { VIR_DOMAIN_BLOCK_IOTUNE_WRITE_IOPS_SEC_MAX, VIR_TYPED_PARAM_ULLONG },
+    { VIR_DOMAIN_BLOCK_IOTUNE_SIZE_IOPS_SEC, VIR_TYPED_PARAM_ULLONG },
+    { VIR_DOMAIN_BLOCK_IOTUNE_GROUP_NAME, VIR_TYPED_PARAM_STRING },
+    { VIR_DOMAIN_BLOCK_IOTUNE_TOTAL_BYTES_SEC_MAX_LENGTH, VIR_TYPED_PARAM_ULLONG },
+    { VIR_DOMAIN_BLOCK_IOTUNE_READ_BYTES_SEC_MAX_LENGTH, VIR_TYPED_PARAM_ULLONG },
+    { VIR_DOMAIN_BLOCK_IOTUNE_WRITE_BYTES_SEC_MAX_LENGTH, VIR_TYPED_PARAM_ULLONG },
+    { VIR_DOMAIN_BLOCK_IOTUNE_TOTAL_IOPS_SEC_MAX_LENGTH, VIR_TYPED_PARAM_ULLONG },
+    { VIR_DOMAIN_BLOCK_IOTUNE_READ_IOPS_SEC_MAX_LENGTH, VIR_TYPED_PARAM_ULLONG },
+    { VIR_DOMAIN_BLOCK_IOTUNE_WRITE_IOPS_SEC_MAX_LENGTH, VIR_TYPED_PARAM_ULLONG },
+    { "", 0 }
+};
 
 static int
 qemuDomainSetBlockIoTuneFields(virDomainBlockIoTuneInfo *info,
@@ -15602,7 +15574,9 @@ qemuDomainSetBlockIoTune(virDomainPtr dom,
 
     virCheckFlags(VIR_DOMAIN_AFFECT_LIVE |
                   VIR_DOMAIN_AFFECT_CONFIG, -1);
-    if (qemuDomainValidateBlockIoTune(params, nparams) < 0)
+
+    if (virTypedParamsValidateTemplate(params, nparams,
+                                       qemuDomainBlockIoTuneParametersValidation) < 0)
         return -1;
 
     if (!(vm = qemuDomainObjFromDomain(dom)))
@@ -20688,7 +20662,8 @@ qemuDomainSetThrottleGroup(virDomainPtr dom,
         return -1;
     }
 
-    if (qemuDomainValidateBlockIoTune(params, nparams) < 0)
+    if (virTypedParamsValidateTemplate(params, nparams,
+                                       qemuDomainBlockIoTuneParametersValidation) < 0)
         return -1;
 
     if (!(vm = qemuDomainObjFromDomain(dom)))