From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:47889) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1WrouM-0005Mq-Fp for qemu-devel@nongnu.org; Tue, 03 Jun 2014 09:37:50 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1WrouD-0004xq-R1 for qemu-devel@nongnu.org; Tue, 03 Jun 2014 09:37:42 -0400 Received: from mx1.redhat.com ([209.132.183.28]:43562) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1WrouD-0004xd-G5 for qemu-devel@nongnu.org; Tue, 03 Jun 2014 09:37:33 -0400 Received: from int-mx02.intmail.prod.int.phx2.redhat.com (int-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.12]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id s53DbWg1011113 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK) for ; Tue, 3 Jun 2014 09:37:32 -0400 Message-ID: <538DCF99.9030602@redhat.com> Date: Tue, 03 Jun 2014 15:37:29 +0200 From: Paolo Bonzini MIME-Version: 1.0 References: <1401799978-9558-1-git-send-email-famz@redhat.com> <1401799978-9558-6-git-send-email-famz@redhat.com> In-Reply-To: <1401799978-9558-6-git-send-email-famz@redhat.com> Content-Type: text/plain; charset=ISO-8859-15; format=flowed Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [PATCH 5/5] virtio-blk: Drop VirtIOBlockReq.read List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Fam Zheng , qemu-devel@nongnu.org Cc: Kevin Wolf , Stefan Hajnoczi I guess this is more of an RFC, but still a useful starting point for discussion. Il 03/06/2014 14:52, Fam Zheng ha scritto: > diff --git a/include/hw/virtio/virtio-blk.h b/include/hw/virtio/virtio-blk.h > index e406efa..74f0f32 100644 > --- a/include/hw/virtio/virtio-blk.h > +++ b/include/hw/virtio/virtio-blk.h > @@ -146,7 +146,6 @@ typedef struct VirtIOBlockReq { > #ifdef CONFIG_VIRTIO_BLK_DATA_PLANE > struct VirtIOBlockDataPlane *s; This is just dev->dataplane, so it's trivial to remove. > QEMUIOVector *inhdr; /* iovecs for virtio_blk_inhdr */ This can be unified with the "in" field; the status is only one byte, so using a full-blown QEMUIOVector is overkill. Stefan, what do you think? For the sake of restarting requests, we also need dataplane to populate the "out" field for dataplane. We can also take the occasion to change it from "struct virtio_blk_outhdr *" to "struct virtio_blk_outhdr" for non-dataplane and use iov_discard_front on the elem (see dataplane's process_request function). Can you do it in v2 of this patch series? With this in place we can look at the missing pieces: - rerror/werror - accounting (trivial) - multiwrite (if desired). Thanks, Paolo > - bool read; /* read or write? */ > #endif > } VirtIOBlockReq; > >