diff options
| author | Richard Henderson <richard.henderson@linaro.org> | 2023-05-05 19:17:44 +0100 |
|---|---|---|
| committer | Richard Henderson <richard.henderson@linaro.org> | 2023-05-05 19:17:44 +0100 |
| commit | 8ad8256ac4ea305fe95967d16d2aba80b7631259 (patch) | |
| tree | a9c0a2d9c03e80e5446a863cfcd484cc7d49ec34 /migration/ram.c | |
| parent | a9fe9e191b4305b88c356a1ed9ac3baf89eb18aa (diff) | |
| parent | fae4009fb51b12927165667a9c9d6af93d31b1df (diff) | |
| download | focaccia-qemu-8ad8256ac4ea305fe95967d16d2aba80b7631259.tar.gz focaccia-qemu-8ad8256ac4ea305fe95967d16d2aba80b7631259.zip | |
Merge tag 'migration-20230505-pull-request' of https://gitlab.com/juan.quintela/qemu into staging
Migration Pull request (20230505 edition) In this series: - fix block_bitmap_mapping (juan) - RDMA cleanup (juan) - qemu file cleanup (juan) Please apply. # -----BEGIN PGP SIGNATURE----- # # iQIzBAABCAAdFiEEGJn/jt6/WMzuA0uC9IfvGFhy1yMFAmRUUhUACgkQ9IfvGFhy # 1yMxkRAAk1jfunLx/0lfN9R2W3IDwOOPrcOOOd6e7zKb7GzccObKPlqb/eQyvjCe # FjOenJ8qgh90sW3m99ZBEla3BKekJlCB88olTjHX6FzWz7HUXMv0ip9Xx/Hg3KA/ # gW8AJhHDI+dKpevmKdhWc3sDG+TvMF6YE3hrSm5TtZ0XdHCH+McvwQm6w6O5/CN0 # HjSqV2veweNFctBRaDk9KNvQ5o9/1UYp98N3FjoRGAuxdTeilBZ2dcSmGXrRj789 # nKSCkNxEAjM0cawuo5EqZ5TCy/hFCqWA+W9hFcz63i9bZAwDu/KF7KyR62kKEh5q # X1JNKqlyuVNutM3Pn8kbTausoWUxEUgbeGI7ID/iQYmP6V36AyyYlASFlLDwPyQs # lgHdEAzPFmQlHMDior4TKE7+9ZtAE6/g5yYaIuGh04pwhlBzwJ/rgyi7Y5sP1Yqr # Y5n+y6Ku7wj+gSswZK5iLQ3OFrJfwFQHIfHtW+22oR7oc9Vg0n+1Xsp1cHdJBrWu # TzdWjX3KnSMTN9x40dJW/7wkt5+XCZcfPcTP/828dGmk0FN8TJMuCvfh79te8tUj # TQ3NDjV4TO8jZBNB3p1ZZfMmwKHvDCBLRr0aj3MVZSvAcoHPlR6yjMENhsm4ERDA # Xtsbqt3mIIq0fIvmQHgXDiUvy2FQw/w3Zhrdb9GbBFdYB/T+iFU= # =79n1 # -----END PGP SIGNATURE----- # gpg: Signature made Fri 05 May 2023 01:47:17 AM BST # gpg: using RSA key 1899FF8EDEBF58CCEE034B82F487EF185872D723 # gpg: Good signature from "Juan Quintela <quintela@redhat.com>" [undefined] # gpg: aka "Juan Quintela <quintela@trasno.org>" [undefined] # gpg: WARNING: This key is not certified with a trusted signature! # gpg: There is no indication that the signature belongs to the owner. # Primary key fingerprint: 1899 FF8E DEBF 58CC EE03 4B82 F487 EF18 5872 D723 * tag 'migration-20230505-pull-request' of https://gitlab.com/juan.quintela/qemu: qemu-file: Make ram_control_save_page() use accessors for rate_limit qemu-file: Make total_transferred an uint64_t qemu-file: remove shutdown member qemu-file: No need to check for shutdown in qemu_file_rate_limit migration: qemu_file_total_transferred() function is monotonic migration: max_postcopy_bandwidth is a size parameter migration/rdma: Check for postcopy sooner migration/rdma: It makes no sense to recive that flag without RDMA migration/rdma: We can calculate the rioc from the QEMUFile migration/rdma: simplify ram_control_load_hook() migration: Make RAM_SAVE_FLAG_HOOK a normal case entry migration: Rename xbzrle_enabled xbzrle_started migration: Put zero_pages in alphabetical order migration: Document all migration_stats migration/rdma: Don't pass the QIOChannelRDMA as an opaque migration: Fix block_bitmap_mapping migration Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Diffstat (limited to 'migration/ram.c')
| -rw-r--r-- | migration/ram.c | 26 |
1 files changed, 12 insertions, 14 deletions
diff --git a/migration/ram.c b/migration/ram.c index 7d81c4a39e..5e7bf20ca5 100644 --- a/migration/ram.c +++ b/migration/ram.c @@ -388,8 +388,8 @@ struct RAMState { uint64_t xbzrle_pages_prev; /* Amount of xbzrle encoded bytes since the beginning of the period */ uint64_t xbzrle_bytes_prev; - /* Start using XBZRLE (e.g., after the first round). */ - bool xbzrle_enabled; + /* Are we really using XBZRLE (e.g., after the first round). */ + bool xbzrle_started; /* Are we on the last stage of migration */ bool last_stage; /* compression statistics since the beginning of the period */ @@ -1420,7 +1420,7 @@ static int ram_save_page(RAMState *rs, PageSearchStatus *pss) trace_ram_save_page(block->idstr, (uint64_t)offset, p); XBZRLE_cache_lock(); - if (rs->xbzrle_enabled && !migration_in_postcopy()) { + if (rs->xbzrle_started && !migration_in_postcopy()) { pages = save_xbzrle_page(rs, pss, &p, current_addr, block, offset); if (!rs->last_stage) { @@ -1636,7 +1636,7 @@ static int find_dirty_block(RAMState *rs, PageSearchStatus *pss) pss->complete_round = true; /* After the first round, enable XBZRLE. */ if (migrate_xbzrle()) { - rs->xbzrle_enabled = true; + rs->xbzrle_started = true; } } /* Didn't find anything this time, but try again on the new block */ @@ -2288,7 +2288,7 @@ static bool save_page_use_compression(RAMState *rs) * using the data compression. In theory, xbzrle can do better than * compression. */ - if (rs->xbzrle_enabled) { + if (rs->xbzrle_started) { return false; } @@ -2357,7 +2357,7 @@ static int ram_save_target_page_legacy(RAMState *rs, PageSearchStatus *pss) /* Must let xbzrle know, otherwise a previous (now 0'd) cached * page would be stale */ - if (rs->xbzrle_enabled) { + if (rs->xbzrle_started) { XBZRLE_cache_lock(); xbzrle_cache_zero_page(rs, block->offset + offset); XBZRLE_cache_unlock(); @@ -2738,7 +2738,7 @@ static void ram_state_reset(RAMState *rs) rs->last_seen_block = NULL; rs->last_page = 0; rs->last_version = ram_list.version; - rs->xbzrle_enabled = false; + rs->xbzrle_started = false; } #define MAX_WAIT 50 /* ms, half buffered_file limit */ @@ -4445,14 +4445,12 @@ static int ram_load_precopy(QEMUFile *f) multifd_recv_sync_main(); } break; + case RAM_SAVE_FLAG_HOOK: + ram_control_load_hook(f, RAM_CONTROL_HOOK, NULL); + break; default: - if (flags & RAM_SAVE_FLAG_HOOK) { - ram_control_load_hook(f, RAM_CONTROL_HOOK, NULL); - } else { - error_report("Unknown combination of migration flags: 0x%x", - flags); - ret = -EINVAL; - } + error_report("Unknown combination of migration flags: 0x%x", flags); + ret = -EINVAL; } if (!ret) { ret = qemu_file_get_error(f); |