qemu-devel
[Top][All Lists]
Advanced

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

Re: [PATCH 2/5] multifd: Put around all sync calls tests for each iterat


From: Dr. David Alan Gilbert
Subject: Re: [PATCH 2/5] multifd: Put around all sync calls tests for each iteration
Date: Tue, 5 Jul 2022 13:20:13 +0100
User-agent: Mutt/2.2.6 (2022-06-05)

* Juan Quintela (quintela@redhat.com) wrote:
> We will sync later in different places.
> 
> Signed-off-by: Juan Quintela <quintela@redhat.com>

Reviewed-by: Dr. David Alan Gilbert <dgilbert@redhat.com>

> ---
>  migration/ram.c | 33 +++++++++++++++++++++------------
>  1 file changed, 21 insertions(+), 12 deletions(-)
> 
> diff --git a/migration/ram.c b/migration/ram.c
> index 5f5e37f64d..35816a3a0a 100644
> --- a/migration/ram.c
> +++ b/migration/ram.c
> @@ -2944,11 +2944,12 @@ static int ram_save_setup(QEMUFile *f, void *opaque)
>      ram_control_before_iterate(f, RAM_CONTROL_SETUP);
>      ram_control_after_iterate(f, RAM_CONTROL_SETUP);
>  
> -    ret =  multifd_send_sync_main(f);
> -    if (ret < 0) {
> -        return ret;
> +    if (migrate_multifd_sync_each_iteration()) {
> +        ret =  multifd_send_sync_main(f);
> +        if (ret < 0) {
> +            return ret;
> +        }
>      }
> -
>      qemu_put_be64(f, RAM_SAVE_FLAG_EOS);
>      qemu_fflush(f);
>  
> @@ -3057,9 +3058,11 @@ static int ram_save_iterate(QEMUFile *f, void *opaque)
>  out:
>      if (ret >= 0
>          && migration_is_setup_or_active(migrate_get_current()->state)) {
> -        ret = multifd_send_sync_main(rs->f);
> -        if (ret < 0) {
> -            return ret;
> +        if (migrate_multifd_sync_each_iteration()) {
> +            ret = multifd_send_sync_main(rs->f);
> +            if (ret < 0) {
> +                return ret;
> +            }
>          }
>  
>          qemu_put_be64(f, RAM_SAVE_FLAG_EOS);
> @@ -3125,9 +3128,11 @@ static int ram_save_complete(QEMUFile *f, void *opaque)
>          return ret;
>      }
>  
> -    ret = multifd_send_sync_main(rs->f);
> -    if (ret < 0) {
> -        return ret;
> +    if (migrate_multifd_sync_each_iteration()) {
> +        ret = multifd_send_sync_main(rs->f);
> +        if (ret < 0) {
> +            return ret;
> +        }
>      }
>  
>      qemu_put_be64(f, RAM_SAVE_FLAG_EOS);
> @@ -3799,7 +3804,9 @@ int ram_load_postcopy(QEMUFile *f)
>  
>          case RAM_SAVE_FLAG_EOS:
>              /* normal exit */
> -            multifd_recv_sync_main();
> +            if (migrate_multifd_sync_each_iteration()) {
> +                multifd_recv_sync_main();
> +            }
>              break;
>          default:
>              error_report("Unknown combination of migration flags: 0x%x"
> @@ -4075,7 +4082,9 @@ static int ram_load_precopy(QEMUFile *f)
>              break;
>          case RAM_SAVE_FLAG_EOS:
>              /* normal exit */
> -            multifd_recv_sync_main();
> +            if (migrate_multifd_sync_each_iteration()) {
> +                multifd_recv_sync_main();
> +            }
>              break;
>          default:
>              if (flags & RAM_SAVE_FLAG_HOOK) {
> -- 
> 2.34.1
> 
-- 
Dr. David Alan Gilbert / dgilbert@redhat.com / Manchester, UK




reply via email to

[Prev in Thread] Current Thread [Next in Thread]