[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH 14/14] migration: Drop rs->f
From: |
Peter Xu |
Subject: |
[PATCH 14/14] migration: Drop rs->f |
Date: |
Tue, 20 Sep 2022 18:52:29 -0400 |
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 <peterx@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
- [PATCH 06/14] migration: Use atomic ops properly for page accountings, (continued)
- [PATCH 06/14] migration: Use atomic ops properly for page accountings, Peter Xu, 2022/09/20
- [PATCH 07/14] migration: Teach PSS about host page, Peter Xu, 2022/09/20
- [PATCH 05/14] migration: Yield bitmap_mutex properly when sending/sleeping, Peter Xu, 2022/09/20
- [PATCH 08/14] migration: Introduce pss_channel, Peter Xu, 2022/09/20
- [PATCH 11/14] migration: Move last_sent_block into PageSearchStatus, Peter Xu, 2022/09/20
- [PATCH 10/14] migration: Make PageSearchStatus part of RAMState, Peter Xu, 2022/09/20
- [PATCH 12/14] migration: Send requested page directly in rp-return thread, Peter Xu, 2022/09/20
- [PATCH 13/14] migration: Remove old preempt code around state maintainance, Peter Xu, 2022/09/20
- [PATCH 14/14] migration: Drop rs->f,
Peter Xu <=
- [PATCH 09/14] migration: Add pss_init(), Peter Xu, 2022/09/20