[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH 07/18] migration: make writes blocking
From: |
Juan Quintela |
Subject: |
Re: [Qemu-devel] [PATCH 07/18] migration: make writes blocking |
Date: |
Mon, 29 Oct 2012 18:32:00 +0100 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/24.1 (gnu/linux) |
Markus Armbruster <address@hidden> wrote:
> Juan Quintela <address@hidden> writes:
>
>> Move all the writes to the migration_thread, and make writings
>> blocking. Notice that are still using the iothread for everything
>> that we do.
> [...]
>> diff --git a/qemu-sockets.c b/qemu-sockets.c
>> index cfed9c5..61b6e95 100644
>> --- a/qemu-sockets.c
>> +++ b/qemu-sockets.c
>> @@ -276,9 +276,6 @@ static int inet_connect_addr(struct addrinfo *addr, bool
>> *in_progress,
>> return -1;
>> }
>> qemu_setsockopt(sock, SOL_SOCKET, SO_REUSEADDR, &on, sizeof(on));
>> - if (connect_state != NULL) {
>> - socket_set_nonblock(sock);
>> - }
>> /* connect to peer */
>> do {
>> rc = 0;
>> @@ -732,7 +729,6 @@ int unix_connect_opts(QemuOpts *opts, Error **errp,
>> connect_state = g_malloc0(sizeof(*connect_state));
>> connect_state->callback = callback;
>> connect_state->opaque = opaque;
>> - socket_set_nonblock(sock);
>> }
>>
>> memset(&un, 0, sizeof(un));
>
> Doesn't this break inet_nonblocking_connect() and
> unix_nonblocking_connect()?
>
> In your cover letter, you wrote:
>
> Note: Writes has become blocking, and I have to change the "remove"
> the feature now in qemu-sockets.c. Checked that migration was the
> only user of that feature. If new users appear, they just need to add
> the socket_set_nonblock() by hand.
>
> Yes, migration-{tcp,unix} are their only users, but if they want a
> blocking socket now, why not use inet_connect() and unix_connect()?
>
> New users can't "just add socket_set_nonblock()". They'd have to add it
> right where you deleted it: between qemu_socket() and connect(). Else
> the connect() is blocking.
Grrr.
So, is there any way to make a connection that is non-blocking, but then
writes are blocking?
Later, Juan.
- [Qemu-devel] [PATCH 00/18] Migration thread lite (20121029), Juan Quintela, 2012/10/29
- [Qemu-devel] [PATCH 01/18] split MRU ram list, Juan Quintela, 2012/10/29
- [Qemu-devel] [PATCH 04/18] buffered_file: Move from using a timer to use a thread, Juan Quintela, 2012/10/29
- [Qemu-devel] [PATCH 05/18] migration: make qemu_fopen_ops_buffered() return void, Juan Quintela, 2012/10/29
- [Qemu-devel] [PATCH 06/18] migration: stop all cpus correctly, Juan Quintela, 2012/10/29
- [Qemu-devel] [PATCH 02/18] add a version number to ram_list, Juan Quintela, 2012/10/29
- [Qemu-devel] [PATCH 03/18] protect the ramlist with a separate mutex, Juan Quintela, 2012/10/29
- [Qemu-devel] [PATCH 09/18] migration: take finer locking, Juan Quintela, 2012/10/29
- [Qemu-devel] [PATCH 07/18] migration: make writes blocking, Juan Quintela, 2012/10/29
- Re: [Qemu-devel] [PATCH 07/18] migration: make writes blocking, Markus Armbruster, 2012/10/29
- Re: [Qemu-devel] [PATCH 07/18] migration: make writes blocking,
Juan Quintela <=
- Re: [Qemu-devel] [PATCH 07/18] migration: make writes blocking, Paolo Bonzini, 2012/10/29
- Re: [Qemu-devel] [PATCH 07/18] migration: make writes blocking, Markus Armbruster, 2012/10/30
- Re: [Qemu-devel] [PATCH 07/18] migration: make writes blocking, Juan Quintela, 2012/10/30
- Re: [Qemu-devel] [PATCH 07/18] migration: make writes blocking, Markus Armbruster, 2012/10/30
- Re: [Qemu-devel] [PATCH 07/18] migration: make writes blocking, Juan Quintela, 2012/10/30
[Qemu-devel] [PATCH 08/18] migration: remove unfreeze logic, Juan Quintela, 2012/10/29
[Qemu-devel] [PATCH 10/18] buffered_file: Unfold the trick to restart generating migration data, Juan Quintela, 2012/10/29
[Qemu-devel] [PATCH 12/18] buffered_file: unfold buffered_append in buffered_put_buffer, Juan Quintela, 2012/10/29
[Qemu-devel] [PATCH 11/18] buffered_file: don't flush on put buffer, Juan Quintela, 2012/10/29
[Qemu-devel] [PATCH 18/18] ram: optimize migration bitmap walking, Juan Quintela, 2012/10/29