From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:60784) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1a9Gcp-0002IN-SI for qemu-devel@nongnu.org; Wed, 16 Dec 2015 13:16:32 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1a9Gcm-0001nV-Dr for qemu-devel@nongnu.org; Wed, 16 Dec 2015 13:16:31 -0500 Received: from mx1.redhat.com ([209.132.183.28]:42155) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1a9Gcm-0001nJ-8M for qemu-devel@nongnu.org; Wed, 16 Dec 2015 13:16:28 -0500 References: <1450284917-10508-1-git-send-email-apyrgio@arrikto.com> From: Paolo Bonzini Message-ID: <5671AA78.8050603@redhat.com> Date: Wed, 16 Dec 2015 19:16:24 +0100 MIME-Version: 1.0 In-Reply-To: <1450284917-10508-1-git-send-email-apyrgio@arrikto.com> Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [PATCH 0/9] Add full scatter-gather support for SCSI generic devices List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Alex Pyrgiotis , qemu-devel@nongnu.org On 16/12/2015 17:55, Alex Pyrgiotis wrote: > Hi all, > > This patch is an attempt to boost the performance of "scsi-generic" and > "scsi-block" device types, by removing an extra data copy and reducing > their memory footprint. More specifically, the problem lies in the > functions in the `scsi-generic_req_ops` struct of scsi-generic.c. These > functions rely on an intermediate buffer to do the SG_IO ioctl request, > without checking if the SCSI controller has provided a scatter-gather > list with the request. > > In a nutshell, our proposal is to map the provided scatter-gather list > (if any) to the address space of the QEMU process and use the resulting > iovec as the buffer for the ioctl request. You'll find that the logic is > quite similar to the one used in scsi-disk.c. Which commands have large payloads and are on the data path, for scsi-block? Or is the use case just scsi-generic (e.g. tape devices?)? (Just trying to understand before I dive into the patches). Paolo