Re: [PATCH v1 1/1] Include support for Vfio stats during Migration

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

 



On 7/5/24 11:59, Kshitij Jha wrote:
> As of now, libvirt supports few essential stats as
> part of virDomainGetJobStats for Live Migration such
> as memory transferred, dirty rate, number of iteration
> etc. Currently it does not have support for the vfio
> stats returned via QEMU. This patch adds support for that.
> 
> Signed-off-by: Kshitij Jha <kshitij.jha@xxxxxxxxxxx>
> ---
>  include/libvirt/libvirt-domain.h |  9 +++++++++
>  src/qemu/qemu_domainjob.c        |  6 ++++++
>  src/qemu/qemu_monitor.h          |  1 +
>  src/qemu/qemu_monitor_json.c     | 12 ++++++++++++
>  4 files changed, 28 insertions(+)
> 
> diff --git a/include/libvirt/libvirt-domain.h b/include/libvirt/libvirt-domain.h
> index 8f00e9e959..8f140399db 100644
> --- a/include/libvirt/libvirt-domain.h
> +++ b/include/libvirt/libvirt-domain.h
> @@ -4612,6 +4612,15 @@ typedef enum {
>   */
>  # define VIR_DOMAIN_JOB_DISK_TEMP_TOTAL "disk_temp_total"
>  
> +/**
> + * VIR_DOMAIN_JOB_VFIO_DATA_TRANSFERRED:
> + * virDomainGetJobStats field: number of bytes transferred by vfio devices

s/vfio/VFIO/

> + * in that iteration, as VIR_TYPED_PARAM_ULLONG.
> + *
> + * Since: 10.6.0
> + */
> +#define VIR_DOMAIN_JOB_VFIO_DATA_TRANSFERRED "vfio_data_transferred"

s/#define/# define/

> +
>  /**
>   * virConnectDomainEventGenericCallback:
>   * @conn: the connection pointer
> diff --git a/src/qemu/qemu_domainjob.c b/src/qemu/qemu_domainjob.c
> index 245e51f14b..9913406ddd 100644
> --- a/src/qemu/qemu_domainjob.c
> +++ b/src/qemu/qemu_domainjob.c
> @@ -414,6 +414,12 @@ qemuDomainMigrationJobDataToParams(virDomainJobData *jobData,
>                               stats->cpu_throttle_percentage) < 0)
>          goto error;
>  
> +    if (stats->vfio_data_transferred &&
> +        virTypedParamsAddULLong(&par, & npar, & maxpar,

No space around ampersand.

> +                                VIR_DOMAIN_JOB_VFIO_DATA_TRANSFERRED,
> +                                stats->vfio_data_transferred) < 0)
> +        goto error;
> +
>   done:
>      *type = virDomainJobStatusToType(jobData->status);
>      *params = par;


Now, ideally this would be two patches at least - one that adds new
public API (well, constant in this case), the other that implements
fetching stats in the QEMU driver. The reason is - easier backports. But
given this code is small enough (i.e. conflicts will be rare), I think
we can make an exception.

I'm fixing all the small nits I've raised and merging. Congratulations
on your first libvirt contribution!

Reviewed-by: Michal Privoznik <mprivozn@xxxxxxxxxx>

Michal



[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