From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from [140.186.70.92] (port=33468 helo=eggs.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1PfAwW-0004IH-IO for qemu-devel@nongnu.org; Tue, 18 Jan 2011 07:45:49 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1PfAwV-0007yZ-Fy for qemu-devel@nongnu.org; Tue, 18 Jan 2011 07:45:48 -0500 Received: from cantor.suse.de ([195.135.220.2]:38186 helo=mx1.suse.de) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1PfAwV-0007yV-9W for qemu-devel@nongnu.org; Tue, 18 Jan 2011 07:45:47 -0500 Mime-Version: 1.0 (Apple Message framework v1082) Content-Type: text/plain; charset=us-ascii From: Alexander Graf In-Reply-To: <4D358920.1060102@redhat.com> Date: Tue, 18 Jan 2011 13:45:40 +0100 Content-Transfer-Encoding: quoted-printable Message-Id: References: <1292879604-22268-1-git-send-email-agraf@suse.de> <1292879604-22268-5-git-send-email-agraf@suse.de> <4D358920.1060102@redhat.com> Subject: [Qemu-devel] Re: [PATCH 4/8] ahci: use qiov instead of dma helpers List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Kevin Wolf Cc: Stefan Hajnoczi , Joerg Roedel , qemu-devel Developers , Gerd Hoffmann , Sebastian Herbszt On 18.01.2011, at 13:35, Kevin Wolf wrote: > Am 20.12.2010 22:13, schrieb Alexander Graf: >> The DMA helpers incur additional overhead on data transfers. I'm not >> sure we need the additional complexity provided by them. So let's = just >> use qiovs directly when running in the fast path (ncq). >>=20 >> Signed-off-by: Alexander Graf >> --- >> hw/ide/ahci.c | 100 = ++++++++++++++++++++++++++++++++++++++++++++++++++++---- >> hw/ide/ahci.h | 3 ++ >> 2 files changed, 95 insertions(+), 8 deletions(-) >=20 > I don't feel comfortable with this one, and I think a while ago we > discussed on IRC why the DMA helpers even exist. If AHCI doesn't need > them, probably nobody needed them. >=20 > However, I'm inclined to think that AHCI actually _does_ need them in > corner cases, even though it might not break in all the common cases > that you have tested. Can you explain why only AHCI doesn't need it or > is it just "didn't break for me in practice"? >=20 It's the latter. > Where does the overhead in the DMA helpers come from? Can we optimize > this code instead of making the device emulation less correct? Well, dma helpers involve another malloc which is probably the biggest = hog. I frankly don't see the point in making it correct for the fast = path though. I'd rather like to have a fast block emulation that works = with all OSs than an accurate one that emulates something nobody cares = about. Virtio for example doesn't use dma helpers either - they just claim it's = not defined in the spec. So if virtio-blk gets away with it, it means = that all OSs should never make use of the additional complexity. Alex