Re: [PATCH v2 22/23] src: expand docs for guest info array handling

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tue, Mar 11, 2025 at 14:24:28 +0000, Daniel P. Berrangé wrote:
> Give an overview of how arrays are handled and represented in
> the typed parameters returned by the guest info API.
> 
> Signed-off-by: Daniel P. Berrangé <berrange@xxxxxxxxxx>
> ---
>  src/libvirt-domain.c | 50 ++++++++++++++++++++++++++++++++++++++++++++
>  1 file changed, 50 insertions(+)
> 
> diff --git a/src/libvirt-domain.c b/src/libvirt-domain.c
> index 5bb9f3895e..59fb923d10 100644
> --- a/src/libvirt-domain.c
> +++ b/src/libvirt-domain.c
> @@ -12390,6 +12390,56 @@ virConnectGetDomainCapabilities(virConnectPtr conn,
>   * VIR_CONNECT_GET_ALL_DOMAINS_STATS_SHUTOFF and/or
>   * VIR_CONNECT_GET_ALL_DOMAINS_STATS_OTHER for all other states.
>   *
> + * In a number of cases the parameters returned are representing
> + * arrays of data items. In these cases multiple VIR_DOMAIN_GUEST_INFO*

The constant names are for the guest stats ...

> + * constants will need to be concatenated to form a complete typed
> + * parameter key. The design pattern for handling array entries is
> + * as follows
> + *
> + * - VIR_DOMAIN_GUEST_INFO_nnnnn_COUNT

...

> + *
> + *   Defines the upper limit on the number of elements that will
> + *   be returned. In some cases the array information may be
> + *   sparsely populated, so it is not considered an error if a
> + *   given element does not exist. Applications should check for
> + *   each possible element upto the declared limit.
> + *
> + * - VIR_DOMAIN_GUEST_INFO_nnnnn_PREFIX

...

> + *
> + *   Defines the prefix to be used to construct the typed parameter
> + *   key for an array element, including the trailing '.'. The prefix
> + *   must have an array index appended, along with a suffix.
> + *
> + * - VIR_DOMAIN_GUEST_INFO_nnnnn_SUFFIX_mmmmm

...

> + *
> + *   Defines the suffix for accessing a particular data item within
> + *   the array element, including the leading '.'. The suffix must
> + *   have an array prefix and index prepended.
> + *
> + * As an example, assuming a printf-like formatting approach an
> + * application would construct a key as follows:
> + *
> + *     format(VIR_DOMAIN_STATS_CPU_CACHE_MONITOR_PREFIX +
> + *            "%d" +
> + *            VIR_DOMAIN_STATS_CPU_CACHE_MONITOR_SUFFIX_VCPUS
> + *            index)

Here it's okay.

> + *
> + * Which, when index==3, would result in the key "cpu.cache.monitor.3.vcpus"
> + *
> + * In some cases there may be nested arrays, in which case the key
> + * is formed by concatenating multiple prefixes and suffixes with
> + * mutliple array indexes. For example:
> + *
> + *     format(VIR_DOMAIN_STATS_CPU_CACHE_MONITOR_PREFIX +
> + *            "%d" +
> + *            VIR_DOMAIN_STATS_CPU_CACHE_MONITOR_SUFFIX_BANK_PREFIX +
> + *            "%d" +
> + *            VIR_DOMAIN_STATS_CPU_CACHE_MONITOR_SUFFIX_BANK_SUFFIX_BYTES
> + *            monindex, bankindex)
> + *
> + * Which, when monindex==3 and bankindex==7, would result in the
> + * key "cpu.cache.monitor.3.bank.7.bytes".
> + *
>   * Returns the count of returned statistics structures on success, -1 on error.
>   * The requested data are returned in the @retStats parameter. The returned
>   * array should be freed by the caller. See virDomainStatsRecordListFree.
> -- 
> 2.48.1
> 

Reviewed-by: Peter Krempa <pkrempa@xxxxxxxxxx>




[Index of Archives]     [Virt Tools]     [Libvirt Users]     [Lib OS Info]     [Fedora Users]     [Fedora Desktop]     [Fedora SELinux]     [Big List of Linux Books]     [Yosemite News]     [KDE Users]     [Fedora Tools]

  Powered by Linux