Skip to content

Commit

Permalink
migration: Move ram_stats to its own file migration-stats.[ch]
Browse files Browse the repository at this point in the history
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 <quintela@redhat.com>
Reviewed-by: Lukas Straub <lukasstraub2@web.de>
  • Loading branch information
Juan Quintela committed May 3, 2023
1 parent e232199 commit 947701c
Show file tree
Hide file tree
Showing 8 changed files with 63 additions and 25 deletions.
1 change: 1 addition & 0 deletions migration/meson.build
Original file line number Diff line number Diff line change
Expand Up @@ -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',
Expand Down
17 changes: 17 additions & 0 deletions migration/migration-stats.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
/*
* Migration stats
*
* Copyright (c) 2012-2023 Red Hat Inc
*
* Authors:
* Juan Quintela <quintela@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;
41 changes: 41 additions & 0 deletions migration/migration-stats.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
/*
* Migration stats
*
* Copyright (c) 2012-2023 Red Hat Inc
*
* Authors:
* Juan Quintela <quintela@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
1 change: 1 addition & 0 deletions migration/migration.c
Original file line number Diff line number Diff line change
Expand Up @@ -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"
Expand Down
1 change: 1 addition & 0 deletions migration/multifd.c
Original file line number Diff line number Diff line change
Expand Up @@ -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"
Expand Down
3 changes: 1 addition & 2 deletions migration/ram.c
Original file line number Diff line number Diff line change
Expand Up @@ -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"
Expand Down Expand Up @@ -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()) {
Expand Down
23 changes: 0 additions & 23 deletions migration/ram.h
Original file line number Diff line number Diff line change
Expand Up @@ -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;

Expand Down
1 change: 1 addition & 0 deletions migration/savevm.c
Original file line number Diff line number Diff line change
Expand Up @@ -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"
Expand Down

0 comments on commit 947701c

Please sign in to comment.