diff options
author | Avihai Horon <avihaih@nvidia.com> | 2024-03-04 12:53:38 +0200 |
---|---|---|
committer | Peter Xu <peterx@redhat.com> | 2024-03-11 14:41:40 -0400 |
commit | 3f6ed59ec400a58646e766a323f7f8047f044b98 (patch) | |
tree | 663ff9f399591979c9877c61d7db130dfdcfcdac /hw | |
parent | 4e1871c450a14e38b09d4e312922eefd475c1c64 (diff) |
vfio/migration: Refactor vfio_save_state() return value
Currently, vfio_save_state() returns 1 regardless of whether there is
more data to send or not. This was done to prevent a fast changing VFIO
device from potentially blocking other devices from sending their data,
as qemu_savevm_state_iterate() serialized devices.
Now that qemu_savevm_state_iterate() no longer serializes devices, there
is no need for that.
Refactor vfio_save_state() to return 0 if more data is available and 1
if no more data is available.
Signed-off-by: Avihai Horon <avihaih@nvidia.com>
Reviewed-by: Fabiano Rosas <farosas@suse.de>
Link: https://lore.kernel.org/r/20240304105339.20713-3-avihaih@nvidia.com
Signed-off-by: Peter Xu <peterx@redhat.com>
Diffstat (limited to 'hw')
-rw-r--r-- | hw/vfio/migration.c | 6 |
1 files changed, 1 insertions, 5 deletions
diff --git a/hw/vfio/migration.c b/hw/vfio/migration.c index 50140eda87..0af783a589 100644 --- a/hw/vfio/migration.c +++ b/hw/vfio/migration.c @@ -529,11 +529,7 @@ static int vfio_save_iterate(QEMUFile *f, void *opaque) trace_vfio_save_iterate(vbasedev->name, migration->precopy_init_size, migration->precopy_dirty_size); - /* - * A VFIO device's pre-copy dirty_bytes is not guaranteed to reach zero. - * Return 1 so following handlers will not be potentially blocked. - */ - return 1; + return !migration->precopy_init_size && !migration->precopy_dirty_size; } static int vfio_save_complete_precopy(QEMUFile *f, void *opaque) |