From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:46402) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZZgau-0005X3-Dc for qemu-devel@nongnu.org; Wed, 09 Sep 2015 10:43:32 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ZZgar-0000GK-6W for qemu-devel@nongnu.org; Wed, 09 Sep 2015 10:43:28 -0400 Received: from mx1.redhat.com ([209.132.183.28]:44291) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZZgar-0000Fz-1r for qemu-devel@nongnu.org; Wed, 09 Sep 2015 10:43:25 -0400 Message-ID: <1441809798.27149.56.camel@redhat.com> From: Gerd Hoffmann Date: Wed, 09 Sep 2015 16:43:18 +0200 In-Reply-To: <55F02FB3.6060607@suse.com> References: <1441277113-30693-1-git-send-email-jgross@suse.com> <1441277113-30693-3-git-send-email-jgross@suse.com> <1441373109.19555.7.camel@redhat.com> <55F019F6.30506@suse.com> <1441800060.27149.50.camel@redhat.com> <55F02FB3.6060607@suse.com> Content-Type: text/plain; charset="UTF-8" Mime-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [Patch V1 2/3] xen/usb: add capability for passing through isoc jobs to host devices List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Juergen Gross Cc: xen-devel@lists.xensource.com, qemu-devel@nongnu.org, stefano.stabellini@eu.citrix.com > > Why multiple small iovecs instead of one big iovec? > > The guest buffer might span multiple physical non contiguous pages. Sure, thats why we have iovecs in the first place. > I > don't want to copy data to a new buffer due to performance reasons > (there is already at least one copy operation done by qemu). We can walk the iovec and fill the libusb struct with the pointers and lengths instead of using usb_copy_packet ... > > usb_host_req_complete_iso_xen() returns a single status for the whole > > USBPacket anyway ... > > I need status per iso request, and libusb does deliver that. So one usbpacket per iso request should make this work. And of you enable pipelining for the endpoint qemu allows multiple outstanding async packages, so you can queue up a batch of requests ... cheers, Gerd