[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH v12 05/21] migration: Export functions to create
From: |
Peter Xu |
Subject: |
Re: [Qemu-devel] [PATCH v12 05/21] migration: Export functions to create send channels |
Date: |
Thu, 26 Apr 2018 15:28:13 +0800 |
User-agent: |
Mutt/1.9.1 (2017-09-22) |
On Wed, Apr 25, 2018 at 01:27:07PM +0200, Juan Quintela wrote:
> 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 edf33c70cf..893a04f4cc 100644
> --- a/migration/socket.c
> +++ b/migration/socket.c
> @@ -29,6 +29,28 @@
> #include "trace.h"
>
>
> +struct SocketOutgoingArgs {
> + SocketAddress *saddr;
> +} outgoing_args;
I am not sure whether I have asked before, but... could we put this
into MigrateState*? The thing is that introducing more global
variables will make things scattered, and we do stuff to merge them
(like the RAMState cleanup work). IMHO it saves time if we can do it
from the very beginning.
> +
> +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;
> +}
Here I would possibly avoid bothering introducing the two new APIs
since AFAIU they didn't do much things, and both of them are only
called once... And IMHO when we call socket_send_channel_create() in
multifd_save_setup() we can initialize MultiFDSendParams->c already
with the object returned by qio_channel_socket_new() if without the
API, instead of waiting until multifd_new_send_channel_async() is
called.
Thanks,
--
Peter Xu
- [Qemu-devel] [PATCH v12 00/21] Multifd, Juan Quintela, 2018/04/25
- [Qemu-devel] [PATCH v12 01/21] migration: Set error state in case of error, Juan Quintela, 2018/04/25
- [Qemu-devel] [PATCH v12 02/21] migration: Introduce multifd_recv_new_channel(), Juan Quintela, 2018/04/25
- [Qemu-devel] [PATCH v12 03/21] migration: terminate_* can be called for other threads, Juan Quintela, 2018/04/25
- [Qemu-devel] [PATCH v12 05/21] migration: Export functions to create send channels, Juan Quintela, 2018/04/25
- Re: [Qemu-devel] [PATCH v12 05/21] migration: Export functions to create send channels,
Peter Xu <=
- [Qemu-devel] [PATCH v12 04/21] migration: Be sure all recv channels are created, Juan Quintela, 2018/04/25
- [Qemu-devel] [PATCH v12 06/21] migration: Create multifd channels, Juan Quintela, 2018/04/25
- [Qemu-devel] [PATCH v12 07/21] migration: Delay start of migration main routines, Juan Quintela, 2018/04/25
- [Qemu-devel] [PATCH v12 08/21] migration: Transmit initial package through the multifd channels, Juan Quintela, 2018/04/25
- [Qemu-devel] [PATCH v12 09/21] migration: Define MultifdRecvParams sooner, Juan Quintela, 2018/04/25
- [Qemu-devel] [PATCH v12 10/21] migration: Create multipage support, Juan Quintela, 2018/04/25
- [Qemu-devel] [PATCH v12 11/21] migration: Create multifd packet, Juan Quintela, 2018/04/25
- [Qemu-devel] [PATCH v12 12/21] migration: Add multifd traces for start/end thread, Juan Quintela, 2018/04/25
- [Qemu-devel] [PATCH v12 13/21] migration: Calculate transferred ram correctly, Juan Quintela, 2018/04/25