Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S935634AbcJZV20 (ORCPT ); Wed, 26 Oct 2016 17:28:26 -0400 Received: from hqemgate16.nvidia.com ([216.228.121.65]:1916 "EHLO hqemgate16.nvidia.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S932987AbcJZV2Y (ORCPT ); Wed, 26 Oct 2016 17:28:24 -0400 X-PGP-Universal: processed; by hqnvupgp08.nvidia.com on Wed, 26 Oct 2016 14:28:22 -0700 From: Kirti Wankhede To: , , , CC: , , , , , , Kirti Wankhede Subject: [PATCH v10 00/19] Add Mediated device support Date: Thu, 27 Oct 2016 02:59:07 +0530 Message-ID: <1477517366-27871-1-git-send-email-kwankhede@nvidia.com> X-Mailer: git-send-email 2.7.0 X-NVConfidentiality: public MIME-Version: 1.0 Content-Type: text/plain Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 4139 Lines: 86 This series adds Mediated device support to Linux host kernel. Purpose of this series is to provide a common interface for mediated device management that can be used by different devices. This series introduces Mdev core module that creates and manages mediated devices, VFIO based driver for mediated devices that are created by mdev core module and update VFIO type1 IOMMU module to support pinning & unpinning for mediated devices. What changed in v10? vfio: - Split commits in multple individual commits. - Removed the function added in v9 to get device_api string. - Defined constant strings in include/uapi/linux/vfio.h that should be used by vendor driver for device_api attribute. vfio_iommu_type1: - Fixed accounting when pass through device is unplugged while mdev device exist in a domain. - Added blocking notifier to notify DMA_UNMAP to vendor driver to invalidate mappings. - Exported APIs to register notifier for DMA_UNMAP action. Documentation: - Added sysfs ABI for mediated device framework. - Updated Documentation/vfio-mdev/vfio-mediated-device.txt. - Updated mtty.c with bug fixes. Kirti Wankhede (19): vfio: Mediated device Core driver vfio: VFIO based driver for Mediated devices vfio: Rearrange functions to get vfio_group from dev vfio: Common function to increment container_users vfio iommu: Added pin and unpin callback functions to vfio_iommu_driver_ops vfio iommu type1: Update arguments of vfio_lock_acct vfio iommu type1: Update argument of vaddr_get_pfn() vfio iommu type1: Add find_iommu_group() function vfio iommu type1: Add support for mediated devices vfio iommu: Add blocking notifier to notify DMA_UNMAP vfio: Introduce common function to add capabilities vfio_pci: Update vfio_pci to use vfio_info_add_capability() vfio: Introduce vfio_set_irqs_validate_and_prepare() vfio_pci: Updated to use vfio_set_irqs_validate_and_prepare() vfio_platform: Updated to use vfio_set_irqs_validate_and_prepare() vfio: Define device_api strings docs: Add Documentation for Mediated devices docs: Sysfs ABI for mediated device framework docs: Sample driver to demonstrate how to use Mediated device framework. Documentation/ABI/testing/sysfs-bus-vfio-mdev | 111 ++ Documentation/vfio-mdev/Makefile | 13 + Documentation/vfio-mdev/mtty.c | 1503 ++++++++++++++++++++++ Documentation/vfio-mdev/vfio-mediated-device.txt | 398 ++++++ drivers/vfio/Kconfig | 1 + drivers/vfio/Makefile | 1 + drivers/vfio/mdev/Kconfig | 17 + drivers/vfio/mdev/Makefile | 5 + drivers/vfio/mdev/mdev_core.c | 384 ++++++ drivers/vfio/mdev/mdev_driver.c | 122 ++ drivers/vfio/mdev/mdev_private.h | 41 + drivers/vfio/mdev/mdev_sysfs.c | 286 ++++ drivers/vfio/mdev/vfio_mdev.c | 148 +++ drivers/vfio/pci/vfio_pci.c | 78 +- drivers/vfio/platform/vfio_platform_common.c | 31 +- drivers/vfio/vfio.c | 322 ++++- drivers/vfio/vfio_iommu_type1.c | 808 ++++++++++-- include/linux/mdev.h | 167 +++ include/linux/vfio.h | 30 +- include/uapi/linux/vfio.h | 10 + 20 files changed, 4270 insertions(+), 206 deletions(-) create mode 100644 Documentation/ABI/testing/sysfs-bus-vfio-mdev create mode 100644 Documentation/vfio-mdev/Makefile create mode 100644 Documentation/vfio-mdev/mtty.c create mode 100644 Documentation/vfio-mdev/vfio-mediated-device.txt create mode 100644 drivers/vfio/mdev/Kconfig create mode 100644 drivers/vfio/mdev/Makefile create mode 100644 drivers/vfio/mdev/mdev_core.c create mode 100644 drivers/vfio/mdev/mdev_driver.c create mode 100644 drivers/vfio/mdev/mdev_private.h create mode 100644 drivers/vfio/mdev/mdev_sysfs.c create mode 100644 drivers/vfio/mdev/vfio_mdev.c create mode 100644 include/linux/mdev.h -- 2.7.0