On 3/4/25 23:03, Maciej S. Szmigiero wrote:
> From: "Maciej S. Szmigiero" <maciej.szmigiero@oracle.com>
>
> This way bytes_transferred can also be incremented in other translation
> units than migration.c.
>
> Signed-off-by: Maciej S. Szmigiero <maciej.szmigiero@oracle.com>
Reviewed-by: CĂ©dric Le Goater <clg@redhat.com>
Thanks,
C.
> ---
> hw/vfio/migration.c | 7 ++++++-
> include/hw/vfio/vfio-common.h | 1 +
> 2 files changed, 7 insertions(+), 1 deletion(-)
>
> diff --git a/hw/vfio/migration.c b/hw/vfio/migration.c
> index 5532787be63b..51c056e152aa 100644
> --- a/hw/vfio/migration.c
> +++ b/hw/vfio/migration.c
> @@ -391,7 +391,7 @@ static ssize_t vfio_save_block(QEMUFile *f, VFIOMigration *migration)
> qemu_put_be64(f, VFIO_MIG_FLAG_DEV_DATA_STATE);
> qemu_put_be64(f, data_size);
> qemu_put_buffer(f, migration->data_buffer, data_size);
> - qatomic_add(&bytes_transferred, data_size);
> + vfio_mig_add_bytes_transferred(data_size);
>
> trace_vfio_save_block(migration->vbasedev->name, data_size);
>
> @@ -1021,6 +1021,11 @@ void vfio_reset_bytes_transferred(void)
> qatomic_set(&bytes_transferred, 0);
> }
>
> +void vfio_mig_add_bytes_transferred(unsigned long val)
> +{
> + qatomic_add(&bytes_transferred, val);
> +}
> +
> /*
> * Return true when either migration initialized or blocker registered.
> * Currently only return false when adding blocker fails which will
> diff --git a/include/hw/vfio/vfio-common.h b/include/hw/vfio/vfio-common.h
> index ac35136a1105..5c84ebb00298 100644
> --- a/include/hw/vfio/vfio-common.h
> +++ b/include/hw/vfio/vfio-common.h
> @@ -274,6 +274,7 @@ void vfio_unblock_multiple_devices_migration(void);
> bool vfio_viommu_preset(VFIODevice *vbasedev);
> int64_t vfio_mig_bytes_transferred(void);
> void vfio_reset_bytes_transferred(void);
> +void vfio_mig_add_bytes_transferred(unsigned long val);
> bool vfio_device_state_is_running(VFIODevice *vbasedev);
> bool vfio_device_state_is_precopy(VFIODevice *vbasedev);
>
>