[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PULL 09/41] migration: Export functions to create send cha
From: |
Juan Quintela |
Subject: |
[Qemu-devel] [PULL 09/41] migration: Export functions to create send channels |
Date: |
Wed, 9 May 2018 13:23:34 +0200 |
Signed-off-by: Juan Quintela <address@hidden>
Reviewed-by: Daniel P. Berrangé <address@hidden>
---
migration/socket.c | 28 +++++++++++++++++++++++++++-
migration/socket.h | 7 +++++++
2 files changed, 34 insertions(+), 1 deletion(-)
diff --git a/migration/socket.c b/migration/socket.c
index 122d8ccfbe..e09fd1aae5 100644
--- a/migration/socket.c
+++ b/migration/socket.c
@@ -28,6 +28,28 @@
#include "trace.h"
+struct SocketOutgoingArgs {
+ SocketAddress *saddr;
+} outgoing_args;
+
+void socket_send_channel_create(QIOTaskFunc f, void *data)
+{
+ QIOChannelSocket *sioc = qio_channel_socket_new();
+ qio_channel_socket_connect_async(sioc, outgoing_args.saddr,
+ f, data, NULL, NULL);
+}
+
+int socket_send_channel_destroy(QIOChannel *send)
+{
+ /* Remove channel */
+ object_unref(OBJECT(send));
+ if (outgoing_args.saddr) {
+ qapi_free_SocketAddress(outgoing_args.saddr);
+ outgoing_args.saddr = NULL;
+ }
+ return 0;
+}
+
static SocketAddress *tcp_build_address(const char *host_port, Error **errp)
{
SocketAddress *saddr;
@@ -95,6 +117,11 @@ static void socket_start_outgoing_migration(MigrationState
*s,
struct SocketConnectData *data = g_new0(struct SocketConnectData, 1);
data->s = s;
+
+ /* in case previous migration leaked it */
+ qapi_free_SocketAddress(outgoing_args.saddr);
+ outgoing_args.saddr = saddr;
+
if (saddr->type == SOCKET_ADDRESS_TYPE_INET) {
data->hostname = g_strdup(saddr->u.inet.host);
}
@@ -106,7 +133,6 @@ static void socket_start_outgoing_migration(MigrationState
*s,
data,
socket_connect_data_free,
NULL);
- qapi_free_SocketAddress(saddr);
}
void tcp_start_outgoing_migration(MigrationState *s,
diff --git a/migration/socket.h b/migration/socket.h
index 6b91e9db38..528c3b0202 100644
--- a/migration/socket.h
+++ b/migration/socket.h
@@ -16,6 +16,13 @@
#ifndef QEMU_MIGRATION_SOCKET_H
#define QEMU_MIGRATION_SOCKET_H
+
+#include "io/channel.h"
+#include "io/task.h"
+
+void socket_send_channel_create(QIOTaskFunc f, void *data);
+int socket_send_channel_destroy(QIOChannel *send);
+
void tcp_start_incoming_migration(const char *host_port, Error **errp);
void tcp_start_outgoing_migration(MigrationState *s, const char *host_port,
--
2.17.0
- [Qemu-devel] [PULL 00/41] Migration queue, Juan Quintela, 2018/05/09
- [Qemu-devel] [PULL 01/41] migration: fix saving normal page even if it's been compressed, Juan Quintela, 2018/05/09
- [Qemu-devel] [PULL 02/41] tests: Add migration precopy test, Juan Quintela, 2018/05/09
- [Qemu-devel] [PULL 03/41] tests: Add migration xbzrle test, Juan Quintela, 2018/05/09
- [Qemu-devel] [PULL 04/41] tests: Migration ppc now inlines its program, Juan Quintela, 2018/05/09
- [Qemu-devel] [PULL 06/41] migration: Introduce multifd_recv_new_channel(), Juan Quintela, 2018/05/09
- [Qemu-devel] [PULL 05/41] migration: Set error state in case of error, Juan Quintela, 2018/05/09
- [Qemu-devel] [PULL 07/41] migration: terminate_* can be called for other threads, Juan Quintela, 2018/05/09
- [Qemu-devel] [PULL 08/41] migration: Be sure all recv channels are created, Juan Quintela, 2018/05/09
- [Qemu-devel] [PULL 09/41] migration: Export functions to create send channels,
Juan Quintela <=
- [Qemu-devel] [PULL 10/41] migration: Create multifd channels, Juan Quintela, 2018/05/09
- [Qemu-devel] [PULL 11/41] migration: Delay start of migration main routines, Juan Quintela, 2018/05/09
- [Qemu-devel] [PULL 12/41] migration: Transmit initial package through the multifd channels, Juan Quintela, 2018/05/09
- [Qemu-devel] [PULL 13/41] migration: Define MultifdRecvParams sooner, Juan Quintela, 2018/05/09
- [Qemu-devel] [PULL 15/41] migration: new postcopy-pause state, Juan Quintela, 2018/05/09
- [Qemu-devel] [PULL 16/41] migration: implement "postcopy-pause" src logic, Juan Quintela, 2018/05/09
- [Qemu-devel] [PULL 17/41] migration: allow dst vm pause on postcopy, Juan Quintela, 2018/05/09
- [Qemu-devel] [PULL 18/41] migration: allow src return path to pause, Juan Quintela, 2018/05/09
- [Qemu-devel] [PULL 14/41] migration: let incoming side use thread context, Juan Quintela, 2018/05/09
- [Qemu-devel] [PULL 19/41] migration: allow fault thread to pause, Juan Quintela, 2018/05/09