From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:45292) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aIxNH-00010J-LK for qemu-devel@nongnu.org; Tue, 12 Jan 2016 06:44:32 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1aIxNE-00047m-Cs for qemu-devel@nongnu.org; Tue, 12 Jan 2016 06:44:31 -0500 Received: from mx1.redhat.com ([209.132.183.28]:39613) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aIxNE-00047f-5R for qemu-devel@nongnu.org; Tue, 12 Jan 2016 06:44:28 -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 C22B8C09FAAB for ; Tue, 12 Jan 2016 11:44:27 +0000 (UTC) From: "Daniel P. Berrange" Date: Tue, 12 Jan 2016 11:43:54 +0000 Message-Id: <1452599056-27357-1-git-send-email-berrange@redhat.com> Subject: [Qemu-devel] [PATCH v1 00/22] Convert migration to QIOChannel & support TLS 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 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