[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
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- Re: [PATCH 2/5] multifd: Put around all sync calls tests for each iteration,
Dr. David Alan Gilbert <=