aboutsummaryrefslogtreecommitdiff
path: root/migration
diff options
context:
space:
mode:
authorPeter Xu <peterx@redhat.com>2022-10-11 17:55:59 -0400
committerJuan Quintela <quintela@redhat.com>2022-12-15 10:30:37 +0100
commit7f401b80445e8746202a6d643410ba1b9eeb3cb1 (patch)
treed60f63a0740e3c9c24db25dc2a8048a1d44372ba /migration
parentb062106d3a06837b8a428ebb7e72f2aeabe0447b (diff)
downloadqemu-7f401b80445e8746202a6d643410ba1b9eeb3cb1.zip
qemu-7f401b80445e8746202a6d643410ba1b9eeb3cb1.tar.gz
qemu-7f401b80445e8746202a6d643410ba1b9eeb3cb1.tar.bz2
migration: Drop rs->f
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. Reviewed-by: Dr. David Alan Gilbert <dgilbert@redhat.com> Signed-off-by: Peter Xu <peterx@redhat.com> Reviewed-by: Juan Quintela <quintela@redhat.com> Signed-off-by: Juan Quintela <quintela@redhat.com>
Diffstat (limited to 'migration')
-rw-r--r--migration/ram.c12
1 files changed, 4 insertions, 8 deletions
diff --git a/migration/ram.c b/migration/ram.c
index 1ae093f..334309f 100644
--- a/migration/ram.c
+++ b/migration/ram.c
@@ -323,8 +323,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.
@@ -2532,8 +2530,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);
@@ -3089,7 +3085,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);
}
@@ -3180,7 +3176,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);
@@ -3315,7 +3311,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;
}
@@ -3385,7 +3381,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;
}