[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PULL 21/42] migration-test: defer connection
From: |
Fabiano Rosas |
Subject: |
[PULL 21/42] migration-test: defer connection |
Date: |
Wed, 29 Jan 2025 13:00:38 -0300 |
From: Steve Sistare <steven.sistare@oracle.com>
Add an option to defer connection to the target monitor, needed by the
cpr-transfer test.
Signed-off-by: Steve Sistare <steven.sistare@oracle.com>
Reviewed-by: Fabiano Rosas <farosas@suse.de>
Link:
1736967650-129648-21-git-send-email-steven.sistare@oracle.com">https://lore.kernel.org/r/1736967650-129648-21-git-send-email-steven.sistare@oracle.com
Signed-off-by: Fabiano Rosas <farosas@suse.de>
---
tests/qtest/migration/framework.c | 22 +++++++++++++++++++---
tests/qtest/migration/framework.h | 3 +++
2 files changed, 22 insertions(+), 3 deletions(-)
diff --git a/tests/qtest/migration/framework.c
b/tests/qtest/migration/framework.c
index f7add75ed5..2611c31c1b 100644
--- a/tests/qtest/migration/framework.c
+++ b/tests/qtest/migration/framework.c
@@ -223,6 +223,7 @@ int migrate_start(QTestState **from, QTestState **to, const
char *uri,
const char *bootpath;
g_autoptr(QList) capabilities = migrate_start_get_qmp_capabilities(args);
g_autofree char *memory_backend = NULL;
+ const char *events;
if (args->use_shmem) {
if (!g_file_test("/dev/shm", G_FILE_TEST_IS_DIR)) {
@@ -340,22 +341,30 @@ int migrate_start(QTestState **from, QTestState **to,
const char *uri,
&src_state);
}
+ /*
+ * If the monitor connection is deferred, enable events on the command line
+ * so none are missed. This is for testing only, do not set migration
+ * options like this in general.
+ */
+ events = args->defer_target_connect ? "-global migration.x-events=on" : "";
+
cmd_target = g_strdup_printf("-accel kvm%s -accel tcg "
"-machine %s,%s "
"-name target,debug-threads=on "
"%s "
"-serial file:%s/dest_serial "
"-incoming %s "
- "%s %s %s %s",
+ "%s %s %s %s %s",
kvm_opts ? kvm_opts : "",
machine, machine_opts,
memory_backend, tmpfs, uri,
+ events,
arch_opts ? arch_opts : "",
shmem_opts ? shmem_opts : "",
args->opts_target ? args->opts_target : "",
ignore_stderr);
*to = qtest_init_with_env_and_capabilities(QEMU_ENV_DST, cmd_target,
- capabilities, true);
+ capabilities,
!args->defer_target_connect);
qtest_qmp_set_event_callback(*to,
migrate_watch_for_events,
&dst_state);
@@ -373,7 +382,9 @@ int migrate_start(QTestState **from, QTestState **to, const
char *uri,
* to mimic as closer as that.
*/
migrate_set_capability(*from, "events", true);
- migrate_set_capability(*to, "events", true);
+ if (!args->defer_target_connect) {
+ migrate_set_capability(*to, "events", true);
+ }
return 0;
}
@@ -733,6 +744,11 @@ void test_precopy_common(MigrateCommon *args)
migrate_qmp(from, to, args->connect_uri, args->connect_channels, "{}");
+ if (args->start.defer_target_connect) {
+ qtest_connect(to);
+ qtest_qmp_handshake(to, NULL);
+ }
+
if (args->result != MIG_TEST_SUCCEED) {
bool allow_active = args->result == MIG_TEST_FAIL;
wait_for_migration_fail(from, allow_active);
diff --git a/tests/qtest/migration/framework.h
b/tests/qtest/migration/framework.h
index dd2db1c000..32f3a93632 100644
--- a/tests/qtest/migration/framework.h
+++ b/tests/qtest/migration/framework.h
@@ -116,6 +116,9 @@ typedef struct {
* size is plugged in. If omitted, "-m %s" is used.
*/
const char *memory_backend;
+
+ /* Do not connect to target monitor and qtest sockets in qtest_init */
+ bool defer_target_connect;
} MigrateStart;
typedef enum PostcopyRecoveryFailStage {
--
2.35.3
- [PULL 15/42] migration: VMSTATE_FD, (continued)
- [PULL 15/42] migration: VMSTATE_FD, Fabiano Rosas, 2025/01/29
- [PULL 20/42] tests/qtest: defer connection, Fabiano Rosas, 2025/01/29
- [PULL 22/42] tests/qtest: enhance migration channels, Fabiano Rosas, 2025/01/29
- [PULL 23/42] tests/qtest: assert qmp connected, Fabiano Rosas, 2025/01/29
- [PULL 26/42] migration: Remove postcopy implications in should_send_vmdesc(), Fabiano Rosas, 2025/01/29
- [PULL 30/42] migration: Drop inactivate_disk param in qemu_savevm_state_complete*, Fabiano Rosas, 2025/01/29
- [PULL 33/42] migration: Adjust locking in migration_maybe_pause(), Fabiano Rosas, 2025/01/29
- [PULL 03/42] physmem: fix qemu_ram_alloc_from_fd size calculation, Fabiano Rosas, 2025/01/29
- [PULL 06/42] memory: add RAM_PRIVATE, Fabiano Rosas, 2025/01/29
- [PULL 11/42] hostmem-shm: preserve for cpr, Fabiano Rosas, 2025/01/29
- [PULL 21/42] migration-test: defer connection,
Fabiano Rosas <=
- [PULL 14/42] migration: SCM_RIGHTS for QEMUFile, Fabiano Rosas, 2025/01/29
- [PULL 28/42] migration: Optimize postcopy on downtime by avoiding JSON writer, Fabiano Rosas, 2025/01/29
- [PULL 29/42] migration: Avoid two src-downtime-end tracepoints for postcopy, Fabiano Rosas, 2025/01/29
- [PULL 34/42] migration: Drop cached migration state in migration_maybe_pause(), Fabiano Rosas, 2025/01/29
- [PULL 24/42] migration-test: cpr-transfer, Fabiano Rosas, 2025/01/29
- [PULL 25/42] migration: cpr-transfer documentation, Fabiano Rosas, 2025/01/29
- [PULL 01/42] migration: fix -Werror=maybe-uninitialized, Fabiano Rosas, 2025/01/29
- [PULL 09/42] physmem: preserve ram blocks for cpr, Fabiano Rosas, 2025/01/29
- [PULL 08/42] migration: cpr-state, Fabiano Rosas, 2025/01/29
- [PULL 13/42] migration: incoming channel, Fabiano Rosas, 2025/01/29