summary refs log tree commit diff stats
diff options
context:
space:
mode:
authorDaniel P. Berrangé <berrange@redhat.com>2021-04-15 14:33:51 +0100
committerDaniel P. Berrangé <berrange@redhat.com>2021-06-14 13:28:50 +0100
commit626ff6515d41854dc8a880849ae2744c20a70ba7 (patch)
tree2b2d99dc81d69341326bb39a1a6fffc6bee1eed5
parent213de8a2fb12f6962ded0240c900f728a72f8217 (diff)
downloadfocaccia-qemu-626ff6515d41854dc8a880849ae2744c20a70ba7.tar.gz
focaccia-qemu-626ff6515d41854dc8a880849ae2744c20a70ba7.zip
migration: add trace point when vm_stop_force_state fails
This is a critical failure scenario for migration that is hard to
diagnose from existing probes. Most likely it is caused by an error
from bdrv_flush(), but we're not logging the errno anywhere, hence
this new probe.

Reviewed-by: Connor Kuehl <ckuehl@redhat.com>
Reviewed-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
-rw-r--r--migration/migration.c1
-rw-r--r--migration/trace-events1
2 files changed, 2 insertions, 0 deletions
diff --git a/migration/migration.c b/migration/migration.c
index 4828997f63..4228635d18 100644
--- a/migration/migration.c
+++ b/migration/migration.c
@@ -3115,6 +3115,7 @@ static void migration_completion(MigrationState *s)
         if (!ret) {
             bool inactivate = !migrate_colo_enabled();
             ret = vm_stop_force_state(RUN_STATE_FINISH_MIGRATE);
+            trace_migration_completion_vm_stop(ret);
             if (ret >= 0) {
                 ret = migration_maybe_pause(s, &current_active_state,
                                             MIGRATION_STATUS_DEVICE);
diff --git a/migration/trace-events b/migration/trace-events
index 860c4f4025..a1c0f034ab 100644
--- a/migration/trace-events
+++ b/migration/trace-events
@@ -149,6 +149,7 @@ migrate_pending(uint64_t size, uint64_t max, uint64_t pre, uint64_t compat, uint
 migrate_send_rp_message(int msg_type, uint16_t len) "%d: len %d"
 migrate_send_rp_recv_bitmap(char *name, int64_t size) "block '%s' size 0x%"PRIi64
 migration_completion_file_err(void) ""
+migration_completion_vm_stop(int ret) "ret %d"
 migration_completion_postcopy_end(void) ""
 migration_completion_postcopy_end_after_complete(void) ""
 migration_rate_limit_pre(int ms) "%d ms"