On Fri, Mar 14, 2025 at 01:38:46PM +0200, Konstantin Kostiuk wrote:
> Windows has no native equivalent API, but it would be possible to
> simulate it as illustrated here (BSD-3-Clause):
> 
>   https://github.com/giampaolo/psutil/pull/1485
> 
> Signed-off-by: Konstantin Kostiuk <kkost...@redhat.com>
> ---
>  qga/commands-win32.c   | 140 +++++++++++++++++++++++++++++++++++++++++
>  qga/guest-agent-core.h |  10 +++
>  qga/main.c             |  39 ++++++++++++
>  qga/meson.build        |   2 +-
>  qga/qapi-schema.json   |   4 +-
>  5 files changed, 192 insertions(+), 3 deletions(-)

Reviewed-by: Daniel P. Berrangé <berra...@redhat.com>


> +GuestLoadAverage *qmp_guest_get_load(Error **errp)
> +{
> +    if (ga_get_load_avg_pdh_query(ga_state) == NULL) {
> +        /* set initial values */
> +        load_avg_1m = 0;
> +        load_avg_5m = 0;
> +        load_avg_15m = 0;
> +
> +        if (init_load_avg_counter(errp) == false) {
> +            return NULL;
> +        }
> +    }

Nice idea. So we avoid running the load average logic
until such time as a mgmt app actually asks for it.

The load avg won't be very accurate initially, but
assuming any interested mgmt app will ask for this
repeatedly over the entire life of the VM, this looks
like a good mitigation.

Perhaps worth a commenting explaining why we're doing
this.


> +
> +    GuestLoadAverage *ret = NULL;
> +
> +    ret = g_new0(GuestLoadAverage, 1);
> +    ret->load1m = load_avg_1m;
> +    ret->load5m = load_avg_5m;
> +    ret->load15m = load_avg_15m;
> +    return ret;
> +}

With regards,
Daniel
-- 
|: https://berrange.com      -o-    https://www.flickr.com/photos/dberrange :|
|: https://libvirt.org         -o-            https://fstop138.berrange.com :|
|: https://entangle-photo.org    -o-    https://www.instagram.com/dberrange :|


Reply via email to