diff mbox series

[PULL,09/12] plugins: add migration blocker

Message ID 20240624101836.193761-10-alex.bennee@linaro.org (mailing list archive)
State New
Headers show
Series [PULL,01/12] include/exec: add missing include guard comment | expand

Commit Message

Alex Bennée June 24, 2024, 10:18 a.m. UTC
If the plugin in controlling time there is some state that might be
missing from the plugin tracking it. Migration is unlikely to work in
this case so lets put a migration blocker in to let the user know if
they try.

Suggested-by: Dr. David Alan Gilbert <dave@treblig.org>
Reviewed-by: Thomas Huth <thuth@redhat.com>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Message-Id: <20240620152220.2192768-10-alex.bennee@linaro.org>
diff mbox series


diff --git a/plugins/api.c b/plugins/api.c
index 4431a0ea7e..2ff13d09de 100644
--- a/plugins/api.c
+++ b/plugins/api.c
@@ -47,6 +47,8 @@ 
 #include "disas/disas.h"
 #include "plugin.h"
+#include "qapi/error.h"
+#include "migration/blocker.h"
 #include "exec/ram_addr.h"
 #include "qemu/plugin-memory.h"
 #include "hw/boards.h"
@@ -589,11 +591,19 @@  uint64_t qemu_plugin_u64_sum(qemu_plugin_u64 entry)
  * Time control
 static bool has_control;
+static Error *migration_blocker;
 const void *qemu_plugin_request_time_control(void)
     if (!has_control) {
         has_control = true;
+        error_setg(&migration_blocker,
+                   "TCG plugin time control does not support migration");
+        migrate_add_blocker(&migration_blocker, NULL);
         return &has_control;
     return NULL;