[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH 2/2] Add tracepoint for state of migration transitio
From: |
Kazuya Saito |
Subject: |
[Qemu-devel] [PATCH 2/2] Add tracepoint for state of migration transition |
Date: |
Wed, 6 Feb 2013 15:38:31 +0900 |
User-agent: |
Mozilla/5.0 (Windows NT 6.1; rv:17.0) Gecko/20130107 Thunderbird/17.0.2 |
This patch enables us to know state of migration (MigrationState.state)
transition. We added migstate_set() to make it easier to trace state
transition, and added a tracepoint in this function.
Signed-off-by: Kazuya Saito <address@hidden>
---
include/migration/migration.h | 2 ++
migration.c | 19 +++++++++++++------
trace-events | 3 +++
3 files changed, 18 insertions(+), 6 deletions(-)
diff --git a/include/migration/migration.h b/include/migration/migration.h
index a8c9639..df89e27 100644
--- a/include/migration/migration.h
+++ b/include/migration/migration.h
@@ -132,4 +132,6 @@ int migrate_use_xbzrle(void);
int64_t migrate_xbzrle_cache_size(void);
int64_t xbzrle_cache_resize(int64_t new_size);
+
+void migstate_set(MigrationState *s, int new_state);
#endif
diff --git a/migration.c b/migration.c
index 77c1971..ccb72ed 100644
--- a/migration.c
+++ b/migration.c
@@ -23,6 +23,7 @@
#include "migration/block.h"
#include "qemu/thread.h"
#include "qmp-commands.h"
+#include "trace.h"
//#define DEBUG_MIGRATION
@@ -285,7 +286,7 @@ static int migrate_fd_cleanup(MigrationState *s)
void migrate_fd_error(MigrationState *s)
{
DPRINTF("setting error state\n");
- s->state = MIG_STATE_ERROR;
+ migstate_set(s, MIG_STATE_ERROR);
notifier_list_notify(&migration_state_notifiers, s);
migrate_fd_cleanup(s);
}
@@ -294,9 +295,9 @@ static void migrate_fd_completed(MigrationState *s)
{
DPRINTF("setting completed state\n");
if (migrate_fd_cleanup(s) < 0) {
- s->state = MIG_STATE_ERROR;
+ migstate_set(s, MIG_STATE_ERROR);
} else {
- s->state = MIG_STATE_COMPLETED;
+ migstate_set(s, MIG_STATE_COMPLETED);
runstate_set(RUN_STATE_POSTMIGRATE);
}
notifier_list_notify(&migration_state_notifiers, s);
@@ -328,7 +329,7 @@ static void migrate_fd_cancel(MigrationState *s)
DPRINTF("cancelling migration\n");
- s->state = MIG_STATE_CANCELLED;
+ migstate_set(s, MIG_STATE_CANCELLED);
notifier_list_notify(&migration_state_notifiers, s);
qemu_savevm_state_cancel();
@@ -389,7 +390,7 @@ static MigrationState *migrate_init(const
MigrationParams *params)
s->xbzrle_cache_size = xbzrle_cache_size;
s->bandwidth_limit = bandwidth_limit;
- s->state = MIG_STATE_SETUP;
+ migstate_set(s, MIG_STATE_SETUP);
s->total_time = qemu_get_clock_ms(rt_clock);
return s;
@@ -777,7 +778,7 @@ static const QEMUFileOps buffered_file_ops = {
void migrate_fd_connect(MigrationState *s)
{
- s->state = MIG_STATE_ACTIVE;
+ migstate_set(s, MIG_STATE_ACTIVE);
s->bytes_xfer = 0;
s->buffer = NULL;
s->buffer_size = 0;
@@ -792,3 +793,9 @@ void migrate_fd_connect(MigrationState *s)
QEMU_THREAD_DETACHED);
notifier_list_notify(&migration_state_notifiers, s);
}
+
+void migstate_set(MigrationState *s, int new_state)
+{
+ s->state = new_state;
+ trace_migstate_set(new_state);
+}
diff --git a/trace-events b/trace-events
index bf508f0..7046bb6 100644
--- a/trace-events
+++ b/trace-events
@@ -1091,3 +1091,6 @@ css_io_interrupt(int cssid, int ssid, int schid,
uint32_t intparm, uint8_t isc,
# hw/s390x/virtio-ccw.c
virtio_ccw_interpret_ccw(int cssid, int ssid, int schid, int cmd_code)
"VIRTIO-CCW: %x.%x.%04x: interpret command %x"
virtio_ccw_new_device(int cssid, int ssid, int schid, int devno, const
char *devno_mode) "VIRTIO-CCW: add subchannel %x.%x.%04x, devno %04x (%s)"
+
+# migration.c
+migstate_set(int new_state) "new state %d"
--
1.7.1
- [Qemu-devel] [PATCH 2/2] Add tracepoint for state of migration transition,
Kazuya Saito <=