On Thu, 27 Apr 2023 18:34:32 +0200 Juan Quintela <quint...@redhat.com> wrote:
> There is already include/qemu/stats.h, so stats.h was a bad idea. > We want this file to not depend on anything else, we will move all the > migration counters/stats to this struct. > > Signed-off-by: Juan Quintela <quint...@redhat.com> Reviewed-by: Lukas Straub <lukasstra...@web.de> > --- > migration/meson.build | 1 + > migration/migration-stats.c | 17 +++++++++++++++ > migration/migration-stats.h | 41 +++++++++++++++++++++++++++++++++++++ > migration/migration.c | 1 + > migration/multifd.c | 1 + > migration/ram.c | 3 +-- > migration/ram.h | 23 --------------------- > migration/savevm.c | 1 + > 8 files changed, 63 insertions(+), 25 deletions(-) > create mode 100644 migration/migration-stats.c > create mode 100644 migration/migration-stats.h > > diff --git a/migration/meson.build b/migration/meson.build > index 480ff6854a..da1897fadf 100644 > --- a/migration/meson.build > +++ b/migration/meson.build > @@ -19,6 +19,7 @@ softmmu_ss.add(files( > 'fd.c', > 'global_state.c', > 'migration-hmp-cmds.c', > + 'migration-stats.c', > 'migration.c', > 'multifd.c', > 'multifd-zlib.c', > diff --git a/migration/migration-stats.c b/migration/migration-stats.c > new file mode 100644 > index 0000000000..b0eb5ae73c > --- /dev/null > +++ b/migration/migration-stats.c > @@ -0,0 +1,17 @@ > +/* > + * Migration stats > + * > + * Copyright (c) 2012-2023 Red Hat Inc > + * > + * Authors: > + * Juan Quintela <quint...@redhat.com> > + * > + * This work is licensed under the terms of the GNU GPL, version 2 or later. > + * See the COPYING file in the top-level directory. > + */ > + > +#include "qemu/osdep.h" > +#include "qemu/stats64.h" > +#include "migration-stats.h" > + > +RAMStats ram_counters; > diff --git a/migration/migration-stats.h b/migration/migration-stats.h > new file mode 100644 > index 0000000000..2edea0c779 > --- /dev/null > +++ b/migration/migration-stats.h > @@ -0,0 +1,41 @@ > +/* > + * Migration stats > + * > + * Copyright (c) 2012-2023 Red Hat Inc > + * > + * Authors: > + * Juan Quintela <quint...@redhat.com> > + * > + * This work is licensed under the terms of the GNU GPL, version 2 or later. > + * See the COPYING file in the top-level directory. > + */ > + > +#ifndef QEMU_MIGRATION_STATS_H > +#define QEMU_MIGRATION_STATS_H > + > +#include "qemu/stats64.h" > + > +/* > + * These are the ram migration statistic counters. It is loosely > + * based on MigrationStats. We change to Stat64 any counter that > + * needs to be updated using atomic ops (can be accessed by more than > + * one thread). > + */ > +typedef struct { > + Stat64 dirty_bytes_last_sync; > + Stat64 dirty_pages_rate; > + Stat64 dirty_sync_count; > + Stat64 dirty_sync_missed_zero_copy; > + Stat64 downtime_bytes; > + Stat64 zero_pages; > + Stat64 multifd_bytes; > + Stat64 normal_pages; > + Stat64 postcopy_bytes; > + Stat64 postcopy_requests; > + Stat64 precopy_bytes; > + Stat64 transferred; > +} RAMStats; > + > +extern RAMStats ram_counters; > + > +#endif > diff --git a/migration/migration.c b/migration/migration.c > index abcadbb619..5ecf3dc381 100644 > --- a/migration/migration.c > +++ b/migration/migration.c > @@ -29,6 +29,7 @@ > #include "migration/global_state.h" > #include "migration/misc.h" > #include "migration.h" > +#include "migration-stats.h" > #include "savevm.h" > #include "qemu-file.h" > #include "channel.h" > diff --git a/migration/multifd.c b/migration/multifd.c > index 6053012ad9..347999f84a 100644 > --- a/migration/multifd.c > +++ b/migration/multifd.c > @@ -19,6 +19,7 @@ > #include "qapi/error.h" > #include "ram.h" > #include "migration.h" > +#include "migration-stats.h" > #include "socket.h" > #include "tls.h" > #include "qemu-file.h" > diff --git a/migration/ram.c b/migration/ram.c > index 89be3e3320..a6d5478ef8 100644 > --- a/migration/ram.c > +++ b/migration/ram.c > @@ -36,6 +36,7 @@ > #include "xbzrle.h" > #include "ram.h" > #include "migration.h" > +#include "migration-stats.h" > #include "migration/register.h" > #include "migration/misc.h" > #include "qemu-file.h" > @@ -460,8 +461,6 @@ uint64_t ram_bytes_remaining(void) > 0; > } > > -RAMStats ram_counters; > - > void ram_transferred_add(uint64_t bytes) > { > if (runstate_is_running()) { > diff --git a/migration/ram.h b/migration/ram.h > index 04b05e1b2c..8692de6ba0 100644 > --- a/migration/ram.h > +++ b/migration/ram.h > @@ -32,30 +32,7 @@ > #include "qapi/qapi-types-migration.h" > #include "exec/cpu-common.h" > #include "io/channel.h" > -#include "qemu/stats64.h" > > -/* > - * These are the ram migration statistic counters. It is loosely > - * based on MigrationStats. We change to Stat64 any counter that > - * needs to be updated using atomic ops (can be accessed by more than > - * one thread). > - */ > -typedef struct { > - Stat64 dirty_bytes_last_sync; > - Stat64 dirty_pages_rate; > - Stat64 dirty_sync_count; > - Stat64 dirty_sync_missed_zero_copy; > - Stat64 downtime_bytes; > - Stat64 zero_pages; > - Stat64 multifd_bytes; > - Stat64 normal_pages; > - Stat64 postcopy_bytes; > - Stat64 postcopy_requests; > - Stat64 precopy_bytes; > - Stat64 transferred; > -} RAMStats; > - > -extern RAMStats ram_counters; > extern XBZRLECacheStats xbzrle_counters; > extern CompressionStats compression_counters; > > diff --git a/migration/savevm.c b/migration/savevm.c > index a9181b444b..8e2efb1a19 100644 > --- a/migration/savevm.c > +++ b/migration/savevm.c > @@ -31,6 +31,7 @@ > #include "net/net.h" > #include "migration.h" > #include "migration/snapshot.h" > +#include "migration-stats.h" > #include "migration/vmstate.h" > #include "migration/misc.h" > #include "migration/register.h" --
pgpl6WWpIZrsm.pgp
Description: OpenPGP digital signature