From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:37415) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bHr1W-0007g2-05 for qemu-devel@nongnu.org; Tue, 28 Jun 2016 07:17:47 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1bHr1R-0001Ik-Ua for qemu-devel@nongnu.org; Tue, 28 Jun 2016 07:17:45 -0400 Received: from mx1.redhat.com ([209.132.183.28]:53410) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bHr1R-0001IZ-PA for qemu-devel@nongnu.org; Tue, 28 Jun 2016 07:17:41 -0400 Date: Tue, 28 Jun 2016 13:17:38 +0200 From: Kevin Wolf Message-ID: <20160628111738.GC6800@noname.redhat.com> References: <1464686130-12265-1-git-send-email-den@openvz.org> <1464686130-12265-4-git-send-email-den@openvz.org> <575F143A.9010406@redhat.com> <576A844E.8010100@virtuozzo.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <576A844E.8010100@virtuozzo.com> Subject: Re: [Qemu-devel] [PATCH 03/11] qcow2: add qcow2_co_write_compressed List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Pavel Butsykin Cc: Eric Blake , "Denis V. Lunev" , qemu-devel@nongnu.org, Jeff Cody , Markus Armbruster , John Snow , Stefan Hajnoczi Am 22.06.2016 um 14:27 hat Pavel Butsykin geschrieben: > On 13.06.2016 23:14, Eric Blake wrote: > >On 05/31/2016 03:15 AM, Denis V. Lunev wrote: > >>From: Pavel Butsykin > >> > >>Added implementation of the qcow2_co_write_compressed function that > >>will allow us to safely use compressed writes for the qcow2 from running VMs. > >> > >>Signed-off-by: Pavel Butsykin > >>Signed-off-by: Denis V. Lunev > >>CC: Jeff Cody > >>CC: Markus Armbruster > >>CC: Eric Blake > >>CC: John Snow > >>CC: Stefan Hajnoczi > >>CC: Kevin Wolf > >>--- > >> block/qcow2.c | 89 ++++++++++++++++++++++++++++++++++------------------------- > >> 1 file changed, 52 insertions(+), 37 deletions(-) > >> > >>diff --git a/block/qcow2.c b/block/qcow2.c > >>index c9306a7..38caa66 100644 > >>--- a/block/qcow2.c > >>+++ b/block/qcow2.c > >>@@ -2535,13 +2535,16 @@ static int qcow2_truncate(BlockDriverState *bs, int64_t offset) > >> > >> /* XXX: put compressed sectors first, then all the cluster aligned > >> tables to avoid losing bytes in alignment */ > >>-static int qcow2_write_compressed(BlockDriverState *bs, int64_t sector_num, > >>- const uint8_t *buf, int nb_sectors) > >>+static coroutine_fn int > >>+qcow2_co_write_compressed(BlockDriverState *bs, int64_t sector_num, > >>+ int nb_sectors, QEMUIOVector *qiov) > > > >Is it worth converting to a byte-based qcow2_co_pwrite_compressed() > >while at it? > > Yes, I'll do it for the next version. I think it makes sense to do this in two steps. That is, one patch for making the function vectored and a second one for making it byte-based. Of course, you can take bytes as a unit even in the first patch, but then just convert it to sector numbers immediately, so that the actual conversion comes separately. Kevin