From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([208.118.235.92]:45552) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1SzRbo-0002GB-Fc for qemu-devel@nongnu.org; Thu, 09 Aug 2012 08:13:01 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1SzRbk-0006Cy-41 for qemu-devel@nongnu.org; Thu, 09 Aug 2012 08:13:00 -0400 Received: from e06smtp10.uk.ibm.com ([195.75.94.106]:50245) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1SzRbj-0006Co-R2 for qemu-devel@nongnu.org; Thu, 09 Aug 2012 08:12:56 -0400 Received: from /spool/local by e06smtp10.uk.ibm.com with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted for from ; Thu, 9 Aug 2012 13:12:54 +0100 Received: from d06av07.portsmouth.uk.ibm.com (d06av07.portsmouth.uk.ibm.com [9.149.37.248]) by b06cxnps4074.portsmouth.uk.ibm.com (8.13.8/8.13.8/NCO v10.0) with ESMTP id q79CCkHR28377236 for ; Thu, 9 Aug 2012 12:12:46 GMT Received: from d06av07.portsmouth.uk.ibm.com (d06av07.portsmouth.uk.ibm.com [127.0.0.1]) by d06av07.portsmouth.uk.ibm.com (8.14.4/8.13.1/NCO v10.0 AVout) with ESMTP id q79Bn1f3010487 for ; Thu, 9 Aug 2012 07:49:02 -0400 Date: Thu, 9 Aug 2012 14:12:48 +0200 From: Cornelia Huck Message-ID: <20120809141248.00080419@BR9GNB5Z> In-Reply-To: References: <1344351173-2716-1-git-send-email-cornelia.huck@de.ibm.com> <1344351173-2716-4-git-send-email-cornelia.huck@de.ibm.com> Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [PATCH 3/5] s390: Add new channel I/O based virtio transport. List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Stefan Hajnoczi Cc: linux-s390 , Anthony Liguori , Rusty Russell , KVM , Carsten Otte , Sebastian Ott , Marcelo Tosatti , Heiko Carstens , qemu-devel , Alexander Graf , Christian Borntraeger , Avi Kivity , Martin Schwidefsky On Thu, 9 Aug 2012 12:34:04 +0100 Stefan Hajnoczi wrote: > On Tue, Aug 7, 2012 at 3:52 PM, Cornelia Huck wrote: > > Add a new virtio transport that uses channel commands to perform > > virtio operations. > > > > Add a new machine type s390-ccw that uses this virtio-ccw transport > > and make it the default machine for s390. > > > > Signed-off-by: Cornelia Huck > > --- > > hw/qdev-monitor.c | 5 + > > hw/s390-virtio.c | 268 ++++++++++---- > > hw/s390x/Makefile.objs | 1 + > > hw/s390x/virtio-ccw.c | 962 +++++++++++++++++++++++++++++++++++++++++++++++++ > > hw/s390x/virtio-ccw.h | 77 ++++ > > vl.c | 1 + > > 6 files changed, 1243 insertions(+), 71 deletions(-) > > create mode 100644 hw/s390x/virtio-ccw.c > > create mode 100644 hw/s390x/virtio-ccw.h > > Is the virtqueue still using vring and assuming the hypervisor reaches > into guest memory? The virtqueues are guest-allocated and their location is transmitted via a control-type ccw to the host, which can then use it until notified otherwise. > > Can existing ccw device types access memory directly (for some reason > I assumed ccw always copies or send messages)? Not sure if I understand your question correctly, but read or write type ccws specify a memory area where the hardware/hypervisor may write to or read from. These accesses happen while the channel program is running (any time between the ssch/rsch and ending status present at the subchannel). The "specify an area that can be used by hardware and os" approach exists as well; the closed thing to the virtio-ccw approach is probably qdio.