diff options
author | Juan Quintela <quintela@redhat.com> | 2023-04-11 17:33:56 +0200 |
---|---|---|
committer | Juan Quintela <quintela@redhat.com> | 2023-04-24 11:28:57 +0200 |
commit | 4291823694fd8507831d26e2558d9cd0030841f7 (patch) | |
tree | d6f76ddf450813c0445883451401c4febb7c47f6 | |
parent | cf671116facf4e29d91fce9c9ffb535385ffac81 (diff) | |
download | qemu-4291823694fd8507831d26e2558d9cd0030841f7.zip qemu-4291823694fd8507831d26e2558d9cd0030841f7.tar.gz qemu-4291823694fd8507831d26e2558d9cd0030841f7.tar.bz2 |
migration: Make dirty_sync_missed_zero_copy atomic
Signed-off-by: Juan Quintela <quintela@redhat.com>
Reviewed-by: Peter Xu <peterx@redhat.com>
-rw-r--r-- | migration/migration.c | 2 | ||||
-rw-r--r-- | migration/multifd.c | 2 | ||||
-rw-r--r-- | migration/ram.c | 5 | ||||
-rw-r--r-- | migration/ram.h | 4 |
4 files changed, 3 insertions, 10 deletions
diff --git a/migration/migration.c b/migration/migration.c index c3debe7..66e5197 100644 --- a/migration/migration.c +++ b/migration/migration.c @@ -1150,7 +1150,7 @@ static void populate_ram_info(MigrationInfo *info, MigrationState *s) info->ram->mbps = s->mbps; info->ram->dirty_sync_count = ram_counters.dirty_sync_count; info->ram->dirty_sync_missed_zero_copy = - ram_counters.dirty_sync_missed_zero_copy; + stat64_get(&ram_counters.dirty_sync_missed_zero_copy); info->ram->postcopy_requests = ram_counters.postcopy_requests; info->ram->page_size = page_size; info->ram->multifd_bytes = stat64_get(&ram_counters.multifd_bytes); diff --git a/migration/multifd.c b/migration/multifd.c index 1c992ab..903df21 100644 --- a/migration/multifd.c +++ b/migration/multifd.c @@ -576,7 +576,7 @@ static int multifd_zero_copy_flush(QIOChannel *c) return -1; } if (ret == 1) { - dirty_sync_missed_zero_copy(); + stat64_add(&ram_counters.dirty_sync_missed_zero_copy, 1); } return ret; diff --git a/migration/ram.c b/migration/ram.c index 71320ed..93e0a48 100644 --- a/migration/ram.c +++ b/migration/ram.c @@ -472,11 +472,6 @@ void ram_transferred_add(uint64_t bytes) stat64_add(&ram_counters.transferred, bytes); } -void dirty_sync_missed_zero_copy(void) -{ - ram_counters.dirty_sync_missed_zero_copy++; -} - struct MigrationOps { int (*ram_save_target_page)(RAMState *rs, PageSearchStatus *pss); }; diff --git a/migration/ram.h b/migration/ram.h index ed70391..2170c55 100644 --- a/migration/ram.h +++ b/migration/ram.h @@ -43,7 +43,7 @@ typedef struct { int64_t dirty_pages_rate; int64_t dirty_sync_count; - uint64_t dirty_sync_missed_zero_copy; + Stat64 dirty_sync_missed_zero_copy; uint64_t downtime_bytes; Stat64 duplicate; Stat64 multifd_bytes; @@ -114,6 +114,4 @@ void ram_write_tracking_prepare(void); int ram_write_tracking_start(void); void ram_write_tracking_stop(void); -void dirty_sync_missed_zero_copy(void); - #endif |