From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from [140.186.70.92] (port=37320 helo=eggs.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1Pzu3z-0001lA-U5 for qemu-devel@nongnu.org; Wed, 16 Mar 2011 12:59:14 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1PztpE-0005D8-Tj for qemu-devel@nongnu.org; Wed, 16 Mar 2011 12:43:57 -0400 Received: from cantor2.suse.de ([195.135.220.15]:54683 helo=mx2.suse.de) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1PztpE-0005Cz-NW for qemu-devel@nongnu.org; Wed, 16 Mar 2011 12:43:56 -0400 Message-ID: <4D80E8CB.60107@suse.de> Date: Wed, 16 Mar 2011 17:43:55 +0100 From: Alexander Graf MIME-Version: 1.0 References: <1300251423-6715-1-git-send-email-david@gibson.dropbear.id.au> <1300251423-6715-26-git-send-email-david@gibson.dropbear.id.au> In-Reply-To: <1300251423-6715-26-git-send-email-david@gibson.dropbear.id.au> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Subject: [Qemu-devel] Re: [PATCH 25/26] Add a PAPR TCE-bypass mechanism for the pSeries machine List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: David Gibson Cc: paulus@samba.org, qemu-devel@nongnu.org, anton@samba.org On 03/16/2011 05:57 AM, David Gibson wrote: > From: Ben Herrenschmidt > > Usually, PAPR virtual IO devices use a virtual IOMMU mechanism, TCEs, > to mediate all DMA transfers. While this is necessary for some sorts of > operation, it can be complex to program and slow for others. > > This patch implements a mechanism for bypassing TCE translation, treating > "IO" addresses as plain (guest) physical memory addresses. This has two > main uses: > * Simple, but 64-bit aware programs like firmwares can use the VIO devices > without the complexity of TCE setup. > * The guest OS can optionally use the TCE bypass to improve performance in > suitable situations. > > The mechanism used is a per-device flag which disables TCE translation. > The flag is toggled with some (hypervisor-implemented) RTAS methods. Is this an official extension used by anyone or is it your own invention that's not implemented in pHyp? Alex