From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([208.118.235.92]:51716) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UfvjI-0001JG-28 for qemu-devel@nongnu.org; Fri, 24 May 2013 13:24:40 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1UfvjD-0000hI-Ao for qemu-devel@nongnu.org; Fri, 24 May 2013 13:24:35 -0400 Received: from mx1.redhat.com ([209.132.183.28]:44464) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UfvjD-0000h8-2S for qemu-devel@nongnu.org; Fri, 24 May 2013 13:24:31 -0400 From: Alex Williamson Date: Fri, 24 May 2013 11:24:26 -0600 Message-ID: <20130524171613.14229.84050.stgit@bling.home> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit Subject: [Qemu-devel] [PATCH 0/2] vfio: type1 iommu hugepage support List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: alex.williamson@redhat.com Cc: iommu@lists.linux-foundation.org, chegu_vinod@hp.com, qemu-devel@nongnu.org, kvm@vger.kernel.org, linux-kernel@vger.kernel.org This series let's the vfio type1 iommu backend take advantage of iommu large page support. See patch 2/2 for the details. This has been tested on both amd_iommu and intel_iommu, but only my AMD system has large page support. I'd appreciate any testing and feedback on other systems, particularly vt-d systems supporting large pages. Mapping efficiency should be improved a bit without iommu hugepages, but I hope that it's much more noticeable with huge pages, especially for very large QEMU guests. This change includes a clarification to the mapping expectations for users of the type1 iommu, but is compatible with known users and works with existing QEMU userspace supporting vfio. Thanks, Alex --- Alex Williamson (2): vfio: Convert type1 iommu to use rbtree vfio: hugepage support for vfio_iommu_type1 drivers/vfio/vfio_iommu_type1.c | 607 ++++++++++++++++++++++++--------------- include/uapi/linux/vfio.h | 8 - 2 files changed, 387 insertions(+), 228 deletions(-)