migration: Make downtime_bytes atomic
Signed-off-by: Juan Quintela <quintela@redhat.com>
Reviewed-by: Peter Xu <peterx@redhat.com>
diff --git a/migration/migration.c b/migration/migration.c
index cbd6f6f..4ca2173 100644
--- a/migration/migration.c
+++ b/migration/migration.c
@@ -1156,7 +1156,7 @@
info->ram->multifd_bytes = stat64_get(&ram_counters.multifd_bytes);
info->ram->pages_per_second = s->pages_per_second;
info->ram->precopy_bytes = stat64_get(&ram_counters.precopy_bytes);
- info->ram->downtime_bytes = ram_counters.downtime_bytes;
+ info->ram->downtime_bytes = stat64_get(&ram_counters.downtime_bytes);
info->ram->postcopy_bytes = stat64_get(&ram_counters.postcopy_bytes);
if (migrate_use_xbzrle()) {
diff --git a/migration/ram.c b/migration/ram.c
index 0b46932..b1722b6 100644
--- a/migration/ram.c
+++ b/migration/ram.c
@@ -467,7 +467,7 @@
} else if (migration_in_postcopy()) {
stat64_add(&ram_counters.postcopy_bytes, bytes);
} else {
- ram_counters.downtime_bytes += bytes;
+ stat64_add(&ram_counters.downtime_bytes, bytes);
}
stat64_add(&ram_counters.transferred, bytes);
}
diff --git a/migration/ram.h b/migration/ram.h
index a766b89..bb52632 100644
--- a/migration/ram.h
+++ b/migration/ram.h
@@ -44,7 +44,7 @@
int64_t dirty_pages_rate;
int64_t dirty_sync_count;
Stat64 dirty_sync_missed_zero_copy;
- uint64_t downtime_bytes;
+ Stat64 downtime_bytes;
Stat64 duplicate;
Stat64 multifd_bytes;
Stat64 normal;