From: Juan Quintela Date: Thu, 27 Apr 2023 08:35:26 +0000 (+0200) Subject: migration/rdma: Split the zero page case from acct_update_position X-Git-Tag: v8.1.0-rc0~147^2~3 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=c61d2faa934ecafbba42d5e410298115a483175e;p=thirdparty%2Fqemu.git migration/rdma: Split the zero page case from acct_update_position Now that we have atomic counters, we can do it on the place that we need it, no need to do it inside ram.c. Signed-off-by: Juan Quintela Reviewed-by: Lukas Straub --- diff --git a/migration/ram.c b/migration/ram.c index c3981f64e4a..c249a1f4682 100644 --- a/migration/ram.c +++ b/migration/ram.c @@ -2629,17 +2629,13 @@ static int ram_find_and_save_block(RAMState *rs) return pages; } -void acct_update_position(QEMUFile *f, size_t size, bool zero) +void acct_update_position(QEMUFile *f, size_t size) { uint64_t pages = size / TARGET_PAGE_SIZE; - if (zero) { - stat64_add(&mig_stats.zero_pages, pages); - } else { - stat64_add(&mig_stats.normal_pages, pages); - ram_transferred_add(size); - qemu_file_credit_transfer(f, size); - } + stat64_add(&mig_stats.normal_pages, pages); + ram_transferred_add(size); + qemu_file_credit_transfer(f, size); } static uint64_t ram_bytes_total_with_ignored(void) diff --git a/migration/ram.h b/migration/ram.h index 8692de6ba00..3804753ca38 100644 --- a/migration/ram.h +++ b/migration/ram.h @@ -53,7 +53,7 @@ void mig_throttle_counter_reset(void); uint64_t ram_pagesize_summary(void); int ram_save_queue_pages(const char *rbname, ram_addr_t start, ram_addr_t len); -void acct_update_position(QEMUFile *f, size_t size, bool zero); +void acct_update_position(QEMUFile *f, size_t size); void ram_postcopy_migrated_memory_release(MigrationState *ms); /* For outgoing discard bitmap */ void ram_postcopy_send_discard_bitmap(MigrationState *ms); diff --git a/migration/rdma.c b/migration/rdma.c index 0af5e944f0b..7a9b284c3fc 100644 --- a/migration/rdma.c +++ b/migration/rdma.c @@ -17,8 +17,10 @@ #include "qemu/osdep.h" #include "qapi/error.h" #include "qemu/cutils.h" +#include "exec/target_page.h" #include "rdma.h" #include "migration.h" +#include "migration-stats.h" #include "qemu-file.h" #include "ram.h" #include "qemu/error-report.h" @@ -2120,7 +2122,8 @@ retry: return -EIO; } - acct_update_position(f, sge.length, true); + stat64_add(&mig_stats.zero_pages, + sge.length / qemu_target_page_size()); return 1; } @@ -2228,7 +2231,7 @@ retry: } set_bit(chunk, block->transit_bitmap); - acct_update_position(f, sge.length, false); + acct_update_position(f, sge.length); rdma->total_writes++; return 0;