* Peter Xu (pet...@redhat.com) wrote:
> Now with rs->pss we can already cache channels in pss->pss_channels.  That
> pss_channel contains more infromation than rs->f because it's per-channel.
> So rs->f could be replaced by rss->pss[RAM_CHANNEL_PRECOPY].pss_channel,
> while rs->f itself is a bit vague now.
> 
> Note that vanilla postcopy still send pages via pss[RAM_CHANNEL_PRECOPY],
> that's slightly confusing but it reflects the reality.
> 
> Then, after the replacement we can safely drop rs->f.
> 
> Signed-off-by: Peter Xu <pet...@redhat.com>

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

> ---
>  migration/ram.c | 12 ++++--------
>  1 file changed, 4 insertions(+), 8 deletions(-)
> 
> diff --git a/migration/ram.c b/migration/ram.c
> index f42efe02fc..03bf2324ab 100644
> --- a/migration/ram.c
> +++ b/migration/ram.c
> @@ -345,8 +345,6 @@ struct RAMSrcPageRequest {
>  
>  /* State of RAM for migration */
>  struct RAMState {
> -    /* QEMUFile used for this migration */
> -    QEMUFile *f;
>      /*
>       * PageSearchStatus structures for the channels when send pages.
>       * Protected by the bitmap_mutex.
> @@ -2555,8 +2553,6 @@ static int ram_find_and_save_block(RAMState *rs)
>          }
>  
>          if (found) {
> -            /* Cache rs->f in pss_channel (TODO: remove rs->f) */
> -            pss->pss_channel = rs->f;
>              pages = ram_save_host_page(rs, pss);
>          }
>      } while (!pages && again);
> @@ -3112,7 +3108,7 @@ static void ram_state_resume_prepare(RAMState *rs, 
> QEMUFile *out)
>      ram_state_reset(rs);
>  
>      /* Update RAMState cache of output QEMUFile */
> -    rs->f = out;
> +    rs->pss[RAM_CHANNEL_PRECOPY].pss_channel = out;
>  
>      trace_ram_state_resume_prepare(pages);
>  }
> @@ -3203,7 +3199,7 @@ static int ram_save_setup(QEMUFile *f, void *opaque)
>              return -1;
>          }
>      }
> -    (*rsp)->f = f;
> +    (*rsp)->pss[RAM_CHANNEL_PRECOPY].pss_channel = f;
>  
>      WITH_RCU_READ_LOCK_GUARD() {
>          qemu_put_be64(f, ram_bytes_total_common(true) | 
> RAM_SAVE_FLAG_MEM_SIZE);
> @@ -3338,7 +3334,7 @@ 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);
> +        ret = 
> multifd_send_sync_main(rs->pss[RAM_CHANNEL_PRECOPY].pss_channel);
>          if (ret < 0) {
>              return ret;
>          }
> @@ -3406,7 +3402,7 @@ static int ram_save_complete(QEMUFile *f, void *opaque)
>          return ret;
>      }
>  
> -    ret = multifd_send_sync_main(rs->f);
> +    ret = multifd_send_sync_main(rs->pss[RAM_CHANNEL_PRECOPY].pss_channel);
>      if (ret < 0) {
>          return ret;
>      }
> -- 
> 2.32.0
> 
-- 
Dr. David Alan Gilbert / dgilb...@redhat.com / Manchester, UK


Reply via email to