From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([208.118.235.92]:51014) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1TUMg1-0004Kh-1A for qemu-devel@nongnu.org; Fri, 02 Nov 2012 15:13:10 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1TUMfz-0006oN-TR for qemu-devel@nongnu.org; Fri, 02 Nov 2012 15:13:08 -0400 Received: from e28smtp09.in.ibm.com ([122.248.162.9]:52246) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1TUMfz-0006np-8G for qemu-devel@nongnu.org; Fri, 02 Nov 2012 15:13:07 -0400 Received: from /spool/local by e28smtp09.in.ibm.com with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted for from ; Sat, 3 Nov 2012 00:43:04 +0530 Received: from d28av04.in.ibm.com (d28av04.in.ibm.com [9.184.220.66]) by d28relay03.in.ibm.com (8.13.8/8.13.8/NCO v10.0) with ESMTP id qA2JD0AQ37486794 for ; Sat, 3 Nov 2012 00:43:00 +0530 Received: from d28av04.in.ibm.com (loopback [127.0.0.1]) by d28av04.in.ibm.com (8.14.4/8.13.1/NCO v10.0 AVout) with ESMTP id qA30gpvG013555 for ; Sat, 3 Nov 2012 11:42:51 +1100 From: Anthony Liguori In-Reply-To: <1351878665-32413-1-git-send-email-pbonzini@redhat.com> References: <1351878665-32413-1-git-send-email-pbonzini@redhat.com> Date: Fri, 02 Nov 2012 14:12:50 -0500 Message-ID: <87y5ijn7il.fsf@codemonkey.ws> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Subject: Re: [Qemu-devel] [PULL 00/12] Incoming migration coroutine List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Paolo Bonzini , qemu-devel@nongnu.org Paolo Bonzini writes: > Anthony, > > The following changes since commit 4ba79505f43bd0ace35c3fe42197eb02e7e0478e: > > Merge remote-tracking branch 'kraxel/pixman.v3' into staging (2012-11-01 11:14:39 -0500) > > are available in the git repository at: Pulled. Thanks. Regards, Anthony Liguori > > > git://github.com/bonzini/qemu.git migr-coroutine > > for you to fetch changes up to 82a4da79fd6c108400637143f8439c2364bdb21e: > > migration: move process_incoming_migration to a coroutine (2012-11-02 18:35:08 +0100) > > With these patches, the monitor and the NBD server are responsive during > migration. > > The first ten patches are just cleanups, generalizing some parts of > QEMUFile and improving the way migration sockets are closed. > > The last two actually implement the feature. They are the opposite > change of the nonblocking->blocking change that you implemented for the > migration thread. However, the change is much simpler because we have > no timers, and because of the use of coroutines. > > Without coroutines (and as in non-threaded migration), you have > to proceed in two steps: first collect data in a buffer, then > write it. This lets you handle EAGAIN only at precise points in > buffered_flush/buffered_put_buffer, so that you can restart writing > in migrate_fd_put_notify. This "checkpointing" is the reason why > QEMUFileBuffered exists. With coroutines, you can just stop whenever > you want with qemu_coroutine_yield. As soon as select tells you that > you can read, you'll re-enter directly in qemu_get_buffer, read more > data and pass it to the loading routines. > > Paolo > ---------------------------------------------------------------- > Paolo Bonzini (12): > migration: unify stdio-based QEMUFile operations > migration: consolidate QEMUFile methods in a single QEMUFileOps struct > migration: add qemu_get_fd > migration: replace qemu_stdio_fd with qemu_get_fd > migration: clean up server sockets and handlers before invoking process_incoming_migration > migration: use migrate_fd_close in migrate_fd_cleanup > migration: use closesocket, not close > migration: xxx_close will only be called once > migration: close socket QEMUFile from socket_close > migration: move qemu_fclose to process_incoming_migration > migration: handle EAGAIN while reading QEMUFile > migration: move process_incoming_migration to a coroutine > > buffered_file.c | 21 +++++-- > migration-exec.c | 19 +++--- > migration-fd.c | 36 +++++------ > migration-tcp.c | 19 +++--- > migration-unix.c | 17 +++-- > migration.c | 46 ++++++++++---- > qemu-file.h | 23 ++++--- > savevm.c | 188 ++++++++++++++++++++++++++++++++----------------------- > 8 file modificati, 215 inserzioni(+), 154 rimozioni(-) > -- > 1.7.12.1