[PATCH 2/4] qemu_driver: add required capabilities to qemuDomainGetStatsWorkers

Michal Prívozník mprivozn at redhat.com
Fri Oct 15 13:51:57 UTC 2021


On 10/15/21 11:49 AM, Hiroki Narukawa wrote:
> One of qemuDomainGetStatsWorkers requires capabilities to run.
> 
> This commit adds capability information to qemuDomainGetStatsWorkers.
> 
> Signed-off-by: Hiroki Narukawa <hnarukaw at yahoo-corp.jp>
> ---
>  src/qemu/qemu_driver.c | 32 +++++++++++++++++++++-----------
>  1 file changed, 21 insertions(+), 11 deletions(-)
> 
> diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c
> index 2b759f5719..ac5eaf139e 100644
> --- a/src/qemu/qemu_driver.c
> +++ b/src/qemu/qemu_driver.c
> @@ -18685,20 +18685,30 @@ struct qemuDomainGetStatsWorker {
>      qemuDomainGetStatsFunc func;
>      unsigned int stats;
>      bool monitor;
> +    virQEMUCapsFlags* requiredCaps;

We prefer the '*' char next to variable, like this:

virQEMUCapsFlags *requiredCaps;

> +};
> +
> +static virQEMUCapsFlags noCapsRequired[] = {
> +    QEMU_CAPS_LAST,
> +};
> +
> +static virQEMUCapsFlags queryDirtyRateRequired[] = {
> +    QEMU_CAPS_QUERY_DIRTY_RATE,
> +    QEMU_CAPS_LAST,
>  };
>  
>  static struct qemuDomainGetStatsWorker qemuDomainGetStatsWorkers[] = {
> -    { qemuDomainGetStatsState, VIR_DOMAIN_STATS_STATE, false },
> -    { qemuDomainGetStatsCpu, VIR_DOMAIN_STATS_CPU_TOTAL, false },
> -    { qemuDomainGetStatsBalloon, VIR_DOMAIN_STATS_BALLOON, true },
> -    { qemuDomainGetStatsVcpu, VIR_DOMAIN_STATS_VCPU, true },
> -    { qemuDomainGetStatsInterface, VIR_DOMAIN_STATS_INTERFACE, false },
> -    { qemuDomainGetStatsBlock, VIR_DOMAIN_STATS_BLOCK, true },
> -    { qemuDomainGetStatsPerf, VIR_DOMAIN_STATS_PERF, false },
> -    { qemuDomainGetStatsIOThread, VIR_DOMAIN_STATS_IOTHREAD, true },
> -    { qemuDomainGetStatsMemory, VIR_DOMAIN_STATS_MEMORY, false },
> -    { qemuDomainGetStatsDirtyRate, VIR_DOMAIN_STATS_DIRTYRATE, true },
> -    { NULL, 0, false }
> +    { qemuDomainGetStatsState, VIR_DOMAIN_STATS_STATE, false, noCapsRequired },
> +    { qemuDomainGetStatsCpu, VIR_DOMAIN_STATS_CPU_TOTAL, false, noCapsRequired },
> +    { qemuDomainGetStatsBalloon, VIR_DOMAIN_STATS_BALLOON, true, noCapsRequired },
> +    { qemuDomainGetStatsVcpu, VIR_DOMAIN_STATS_VCPU, true, noCapsRequired },
> +    { qemuDomainGetStatsInterface, VIR_DOMAIN_STATS_INTERFACE, false, noCapsRequired },
> +    { qemuDomainGetStatsBlock, VIR_DOMAIN_STATS_BLOCK, true, noCapsRequired },
> +    { qemuDomainGetStatsPerf, VIR_DOMAIN_STATS_PERF, false, noCapsRequired },
> +    { qemuDomainGetStatsIOThread, VIR_DOMAIN_STATS_IOTHREAD, true, noCapsRequired },
> +    { qemuDomainGetStatsMemory, VIR_DOMAIN_STATS_MEMORY, false, noCapsRequired },
> +    { qemuDomainGetStatsDirtyRate, VIR_DOMAIN_STATS_DIRTYRATE, true, queryDirtyRateRequired },
> +    { NULL, 0, false, NULL }

How about instead of noCapsRequired a simple NULL would be passed? The
consumer can then check for NULL and skip the loop completely.

Michal




More information about the libvir-list mailing list