diff options
author | Juan Quintela <quintela@redhat.com> | 2023-04-27 10:35:26 +0200 |
---|---|---|
committer | Juan Quintela <quintela@redhat.com> | 2023-05-03 11:24:20 +0200 |
commit | c61d2faa934ecafbba42d5e410298115a483175e (patch) | |
tree | 2389d07bf9c6e3bf7fae1cf8efd93c482db24330 /migration | |
parent | 96820df24eadd81bfa18b4a1814a303bb87114b8 (diff) | |
download | qemu-c61d2faa934ecafbba42d5e410298115a483175e.zip qemu-c61d2faa934ecafbba42d5e410298115a483175e.tar.gz qemu-c61d2faa934ecafbba42d5e410298115a483175e.tar.bz2 |
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 <quintela@redhat.com>
Reviewed-by: Lukas Straub <lukasstraub2@web.de>
Diffstat (limited to 'migration')
-rw-r--r-- | migration/ram.c | 12 | ||||
-rw-r--r-- | migration/ram.h | 2 | ||||
-rw-r--r-- | migration/rdma.c | 7 |
3 files changed, 10 insertions, 11 deletions
diff --git a/migration/ram.c b/migration/ram.c index c3981f6..c249a1f 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 8692de6..3804753 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 0af5e94..7a9b284 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; |