From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:58600) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1axJ4p-0004Aw-6A for qemu-devel@nongnu.org; Mon, 02 May 2016 15:00:21 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1axJ4Z-0004Cg-Vk for qemu-devel@nongnu.org; Mon, 02 May 2016 15:00:09 -0400 Received: from hqemgate15.nvidia.com ([216.228.121.64]:6179) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1axJ4Z-000481-Lz for qemu-devel@nongnu.org; Mon, 02 May 2016 14:59:59 -0400 From: Kirti Wankhede Date: Tue, 3 May 2016 00:10:38 +0530 Message-ID: <1462214441-3732-1-git-send-email-kwankhede@nvidia.com> MIME-Version: 1.0 Content-Type: text/plain Subject: [Qemu-devel] [RFC PATCH v3 0/3] Add vGPU support List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: alex.williamson@redhat.com, pbonzini@redhat.com, kraxel@redhat.com, cjia@nvidia.com Cc: qemu-devel@nongnu.org, kvm@vger.kernel.org, kevin.tian@intel.com, shuai.ruan@intel.com, jike.song@intel.com, zhiyuan.lv@intel.com, Kirti Wankhede This series adds vGPU support to v4.6 Linux host kernel. Purpose of this series is to provide a common interface for vGPU management that can be used by different GPU drivers. This series introduces vGPU core module that create and manage vGPU devices, VFIO based driver for vGPU devices that are created by vGPU core module and update VFIO type1 IOMMU module to support vGPU devices. What's new in v3? VFIO type1 IOMMU module supports devices which are IOMMU capable. This version of patched adds support for vGPU devices, which are not IOMMU capable, to use existing VFIO IOMMU module. VFIO Type1 IOMMU patch provide new set of APIs for guest page translation. What's left to do? VFIO driver for vGPU device doesn't support devices with MSI-X enabled. Please review. Thanks, Kirti Kirti Wankhede (3): vGPU Core driver VFIO driver for vGPU device VFIO Type1 IOMMU change: to support with iommu and without iommu drivers/Kconfig | 2 + drivers/Makefile | 1 + drivers/vfio/vfio_iommu_type1.c | 427 +++++++++++++++++++++++-- drivers/vgpu/Kconfig | 21 ++ drivers/vgpu/Makefile | 5 + drivers/vgpu/vgpu-core.c | 424 ++++++++++++++++++++++++ drivers/vgpu/vgpu-driver.c | 136 ++++++++ drivers/vgpu/vgpu-sysfs.c | 365 +++++++++++++++++++++ drivers/vgpu/vgpu_private.h | 36 ++ drivers/vgpu/vgpu_vfio.c | 671 +++++++++++++++++++++++++++++++++++++++ include/linux/vfio.h | 6 + include/linux/vgpu.h | 216 +++++++++++++ 12 files changed, 2278 insertions(+), 32 deletions(-) create mode 100644 drivers/vgpu/Kconfig create mode 100644 drivers/vgpu/Makefile create mode 100644 drivers/vgpu/vgpu-core.c create mode 100644 drivers/vgpu/vgpu-driver.c create mode 100644 drivers/vgpu/vgpu-sysfs.c create mode 100644 drivers/vgpu/vgpu_private.h create mode 100644 drivers/vgpu/vgpu_vfio.c create mode 100644 include/linux/vgpu.h