[RFC PATCH 14/16] qemu: capabilities: Introduce QEMU_CAPS_DISK_TIMED_STATS

Peter Krempa via Devel posted 16 patches 2 weeks, 4 days ago
[RFC PATCH 14/16] qemu: capabilities: Introduce QEMU_CAPS_DISK_TIMED_STATS
Posted by Peter Krempa via Devel 2 weeks, 4 days ago
From: Peter Krempa <pkrempa@redhat.com>

The capability tracks support for 'stats-intervals' property of disk
frontends which enables statistics collection on the devices.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
---
 src/qemu/qemu_capabilities.c                      | 5 +++++
 src/qemu/qemu_capabilities.h                      | 1 +
 tests/qemucapabilitiesdata/caps_10.2.0_x86_64.xml | 1 +
 3 files changed, 7 insertions(+)

diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c
index 618291e5b6..7d643c5357 100644
--- a/src/qemu/qemu_capabilities.c
+++ b/src/qemu/qemu_capabilities.c
@@ -746,6 +746,7 @@ VIR_ENUM_IMPL(virQEMUCaps,

               /* 485 */
               "acpi-generic-initiator", /* QEMU_CAPS_ACPI_GENERIC_INITIATOR */
+              "disk-timed-stats", /* QEMU_CAPS_DISK_TIMED_STATS */
     );


@@ -1478,6 +1479,7 @@ static struct virQEMUCapsDevicePropsFlags virQEMUCapsDevicePropsVirtioBlk[] = {
     { "queue-size", QEMU_CAPS_VIRTIO_BLK_QUEUE_SIZE, NULL },
     { "acpi-index", QEMU_CAPS_ACPI_INDEX, NULL },
     { "iothread-vq-mapping", QEMU_CAPS_VIRTIO_BLK_IOTHREAD_MAPPING, NULL },
+    { "stats-intervals", QEMU_CAPS_DISK_TIMED_STATS, NULL },
 };

 static struct virQEMUCapsDevicePropsFlags virQEMUCapsDevicePropsVirtioNet[] = {
@@ -1509,9 +1511,11 @@ static struct virQEMUCapsDevicePropsFlags virQEMUCapsDevicePropsVfioPCI[] = {
 static struct virQEMUCapsDevicePropsFlags virQEMUCapsDevicePropsSCSIDisk[] = {
     { "channel", QEMU_CAPS_SCSI_DISK_CHANNEL, NULL },
     { "rotation_rate", QEMU_CAPS_ROTATION_RATE, NULL },
+    { "stats-intervals", QEMU_CAPS_DISK_TIMED_STATS, NULL },
 };

 static struct virQEMUCapsDevicePropsFlags virQEMUCapsDevicePropsIDEDrive[] = {
+    { "stats-intervals", QEMU_CAPS_DISK_TIMED_STATS, NULL },
 };

 static struct virQEMUCapsDevicePropsFlags virQEMUCapsDevicePropsPiix4PM[] = {
@@ -1523,6 +1527,7 @@ static struct virQEMUCapsDevicePropsFlags virQEMUCapsDevicePropsUSBRedir[] = {
 };

 static struct virQEMUCapsDevicePropsFlags virQEMUCapsDevicePropsUSBStorage[] = {
+    { "stats-intervals", QEMU_CAPS_DISK_TIMED_STATS, NULL },
 };

 static struct virQEMUCapsDevicePropsFlags virQEMUCapsDevicePropsKVMPit[] = {
diff --git a/src/qemu/qemu_capabilities.h b/src/qemu/qemu_capabilities.h
index c71fc19a03..3e9963bb85 100644
--- a/src/qemu/qemu_capabilities.h
+++ b/src/qemu/qemu_capabilities.h
@@ -727,6 +727,7 @@ typedef enum { /* virQEMUCapsFlags grouping marker for syntax-check */

     /* 485 */
     QEMU_CAPS_ACPI_GENERIC_INITIATOR, /* -object acpi-generic-initiator */
+    QEMU_CAPS_DISK_TIMED_STATS, /* timed stats support ('stats-intervals' property of disk frontends) */

     QEMU_CAPS_LAST /* this must always be the last item */
 } virQEMUCapsFlags;
diff --git a/tests/qemucapabilitiesdata/caps_10.2.0_x86_64.xml b/tests/qemucapabilitiesdata/caps_10.2.0_x86_64.xml
index 59d33c7049..49fdb6edba 100644
--- a/tests/qemucapabilitiesdata/caps_10.2.0_x86_64.xml
+++ b/tests/qemucapabilitiesdata/caps_10.2.0_x86_64.xml
@@ -215,6 +215,7 @@
   <flag name='tdx-guest'/>
   <flag name='qom-list-get'/>
   <flag name='acpi-generic-initiator'/>
+  <flag name='disk-timed-stats'/>
   <version>10001050</version>
   <microcodeVersion>43100287</microcodeVersion>
   <package>v10.1.0-1063-g3bf55b83ef</package>
-- 
2.51.0