* 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