tls migration can easily reach bottleneck of cpu which results in migration failure. add support for multifd tls feature to make fully use of bandwidth.
78 lines
2.4 KiB
Diff
78 lines
2.4 KiB
Diff
From 08ae1eda02ff08b3431b227ed702ea0fc5f8a4a2 Mon Sep 17 00:00:00 2001
|
|
From: Chuan Zheng <zhengchuan@huawei.com>
|
|
Date: Tue, 15 Sep 2020 11:03:57 +0800
|
|
Subject: [PATCH] migration/tls: save hostname into MigrationState
|
|
MIME-Version: 1.0
|
|
Content-Type: text/plain; charset=UTF-8
|
|
Content-Transfer-Encoding: 8bit
|
|
|
|
hostname is need in multifd-tls, save hostname into MigrationState.
|
|
|
|
Signed-off-by: Chuan Zheng <zhengchuan@huawei.com>
|
|
Signed-off-by: Yan Jin <jinyan12@huawei.com>
|
|
Message-Id: <1600139042-104593-2-git-send-email-zhengchuan@huawei.com>
|
|
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
|
|
Signed-off-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
|
|
---
|
|
migration/channel.c | 1 +
|
|
migration/migration.c | 1 +
|
|
migration/migration.h | 5 +++++
|
|
migration/tls.c | 2 ++
|
|
4 files changed, 9 insertions(+)
|
|
|
|
diff --git a/migration/channel.c b/migration/channel.c
|
|
index 7462181484..46ed40b89c 100644
|
|
--- a/migration/channel.c
|
|
+++ b/migration/channel.c
|
|
@@ -99,5 +99,6 @@ void migration_channel_connect(MigrationState *s,
|
|
}
|
|
}
|
|
migrate_fd_connect(s, error);
|
|
+ g_free(s->hostname);
|
|
error_free(error);
|
|
}
|
|
diff --git a/migration/migration.c b/migration/migration.c
|
|
index 7949f2a40b..993d77b7d6 100644
|
|
--- a/migration/migration.c
|
|
+++ b/migration/migration.c
|
|
@@ -1710,6 +1710,7 @@ void migrate_init(MigrationState *s)
|
|
s->migration_thread_running = false;
|
|
error_free(s->error);
|
|
s->error = NULL;
|
|
+ s->hostname = NULL;
|
|
|
|
migrate_set_state(&s->state, MIGRATION_STATUS_NONE, MIGRATION_STATUS_SETUP);
|
|
|
|
diff --git a/migration/migration.h b/migration/migration.h
|
|
index feb344306a..e5aaf2ef70 100644
|
|
--- a/migration/migration.h
|
|
+++ b/migration/migration.h
|
|
@@ -259,6 +259,11 @@ struct MigrationState
|
|
* (which is in 4M chunk).
|
|
*/
|
|
uint8_t clear_bitmap_shift;
|
|
+
|
|
+ /*
|
|
+ * This save hostname when out-going migration starts
|
|
+ */
|
|
+ char *hostname;
|
|
};
|
|
|
|
void migrate_set_state(int *state, int old_state, int new_state);
|
|
diff --git a/migration/tls.c b/migration/tls.c
|
|
index 5171afc6c4..a0eb553e14 100644
|
|
--- a/migration/tls.c
|
|
+++ b/migration/tls.c
|
|
@@ -155,6 +155,8 @@ void migration_tls_channel_connect(MigrationState *s,
|
|
return;
|
|
}
|
|
|
|
+ /* Save hostname into MigrationState for handshake */
|
|
+ s->hostname = g_strdup(hostname);
|
|
trace_migration_tls_outgoing_handshake_start(hostname);
|
|
qio_channel_set_name(QIO_CHANNEL(tioc), "migration-tls-outgoing");
|
|
qio_channel_tls_handshake(tioc,
|
|
--
|
|
2.27.0
|
|
|