From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:51101) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aIxc0-0007Iz-JF for qemu-devel@nongnu.org; Tue, 12 Jan 2016 06:59:46 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1aIxbw-00008O-Va for qemu-devel@nongnu.org; Tue, 12 Jan 2016 06:59:44 -0500 Received: from mx1.redhat.com ([209.132.183.28]:50278) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aIxbw-00008H-NA for qemu-devel@nongnu.org; Tue, 12 Jan 2016 06:59:40 -0500 Received: from int-mx11.intmail.prod.int.phx2.redhat.com (int-mx11.intmail.prod.int.phx2.redhat.com [10.5.11.24]) by mx1.redhat.com (Postfix) with ESMTPS id 38C09C0BF2C9 for ; Tue, 12 Jan 2016 11:59:40 +0000 (UTC) Date: Tue, 12 Jan 2016 11:59:36 +0000 From: "Daniel P. Berrange" Message-ID: <20160112115936.GB17626@redhat.com> References: <1452599056-27357-1-git-send-email-berrange@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline In-Reply-To: <1452599056-27357-1-git-send-email-berrange@redhat.com> Subject: Re: [Qemu-devel] [PATCH v1 00/22] Convert migration to QIOChannel & support TLS Reply-To: "Daniel P. Berrange" List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: Amit Shah , "Dr. David Alan Gilbert" , Juan Quintela BTW, also available at https://github.com/berrange/qemu/tree/io-channel-migration-1 On Tue, Jan 12, 2016 at 11:43:54AM +0000, Daniel P. Berrange wrote: > This is a formal posting of patches that were previously > previewed at: > > FYI: https://lists.gnu.org/archive/html/qemu-devel/2015-09/msg00829.html > > The primary goal of this series of patches is to support TLS on the > migration data channel. The bulk of the work in this series though, > is converting the various QEMUFile implementations to be baed on the > new QIOChannel framework. > > At the end of this current series there is just one remaining impl > of QEMUFileOps that is not based on QIOChannel - the one in savevm.c > that is using BlockDriverState. It would be possible to create a > QIOChannel wrapper around BlockDriverState too, at which point all > QEMUFile impls would be QIOChannel based. This would then let us > cut out the QEMUFileOps driver callbacks entirely and thus simply > code even more. This patch series is already too large, so I left > that for now. > > The first 6 patchs are some basic clean ups to QEMUFile code > > The 7th patch introduces the QIOChannel based QEMUFile impl > > Patches 8-14 convert the various migration protocols to use > the QIOChannel based QEMUFile impl. > > Patches 15-18 remove the now unused QEMUFile impls that do > not use QIOChanel > > Patches 19, 21 and 22 does some more cleanup > > Patch 20 achieves the original stated primary goal of adding > TLS encryption to the TCP migration backend. > > Overall we have a net win of deleting 500 lines of code, > despite adding more features, which is always nice. > > I testing unix, tcp, exec migrations. I don't have the ability > to test RDMA migration, and that's the patch I'm also least > confident about code quality of, so would appreciated some > independant testing of that one in particular. > > > Daniel P. Berrange (22): > s390: use FILE instead of QEMUFile for creating text file > migration: remove use of qemu_bufopen from vmstate tests > migration: ensure qemu_fflush() always writes full data amount > migration: split migration hooks out of QEMUFileOps > migration: introduce set_blocking function in QEMUFileOps > migration: force QEMUFile to blocking mode for outgoing migration > migration: introduce a new QEMUFile impl based on QIOChannel > migration: convert post-copy to use QIOChannelBuffer > migration: convert unix socket protocol to use QIOChannel > migration: convert tcp socket protocol to use QIOChannel > migration: convert fd socket protocol to use QIOChannel > migration: convert exec socket protocol to use QIOChannel > migration: convert RDMA to use QIOChannel interface > migration: convert savevm to use QIOChannel for writing to files > migration: delete QEMUFile buffer implementation > migration: delete QEMUSizedBuffer struct > migration: delete QEMUFile sockets implementation > migration: delete QEMUFile stdio implementation > migration: move definition of struct QEMUFile back into qemu-file.c > migration: support TLS encryption with TCP migration backend > migration: remove support for non-iovec based write handlers > migration: remove qemu_get_fd method from QEMUFile > > docs/migration.txt | 4 +- > hw/s390x/s390-skeys.c | 19 +- > include/migration/qemu-file.h | 57 ++--- > include/qemu/typedefs.h | 1 - > include/sysemu/sysemu.h | 2 +- > migration/Makefile.objs | 6 +- > migration/exec.c | 48 +++-- > migration/fd.c | 57 +++-- > migration/migration.c | 24 +-- > migration/qemu-file-buf.c | 463 ----------------------------------------- > migration/qemu-file-channel.c | 201 ++++++++++++++++++ > migration/qemu-file-internal.h | 53 ----- > migration/qemu-file-stdio.c | 195 ----------------- > migration/qemu-file-unix.c | 324 ---------------------------- > migration/qemu-file.c | 110 +++++----- > migration/rdma.c | 256 ++++++++++++++--------- > migration/savevm.c | 57 ++--- > migration/tcp.c | 372 +++++++++++++++++++++++++++++---- > migration/unix.c | 103 +++++---- > qemu-options.hx | 7 +- > tests/Makefile | 6 +- > tests/test-vmstate.c | 55 ++--- > 22 files changed, 975 insertions(+), 1445 deletions(-) > delete mode 100644 migration/qemu-file-buf.c > create mode 100644 migration/qemu-file-channel.c > delete mode 100644 migration/qemu-file-internal.h > delete mode 100644 migration/qemu-file-stdio.c > delete mode 100644 migration/qemu-file-unix.c > > -- > 2.5.0 > Regards, Daniel -- |: http://berrange.com -o- http://www.flickr.com/photos/dberrange/ :| |: http://libvirt.org -o- http://virt-manager.org :| |: http://autobuild.org -o- http://search.cpan.org/~danberr/ :| |: http://entangle-photo.org -o- http://live.gnome.org/gtk-vnc :|