From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jike Song Subject: [RFC v2 0/4] adding mdev bus and vfio support Date: Fri, 2 Sep 2016 16:16:08 +0800 Message-ID: <1472804172-25542-1-git-send-email-jike.song@intel.com> Cc: kevin.tian@intel.com, guangrong.xiao@linux.intel.com, kvm@vger.kernel.org, qemu-devel@nongnu.org, zhenyuw@linux.intel.com, jike.song@intel.com, zhiyuan.lv@intel.com, pbonzini@redhat.com, bjsdjshi@linux.vnet.ibm.com, kraxel@redhat.com To: alex.williamson@redhat.com, kwankhede@nvidia.com, cjia@nvidia.com Return-path: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+gceq-qemu-devel=gmane.org@nongnu.org Sender: "Qemu-devel" List-Id: kvm.vger.kernel.org This patchset is based on NVidia's "Add Mediated device support" series, version 6: http://www.spinics.net/lists/kvm/msg136472.html Key Changes from Nvidia v6: - Introduced an independent struct device to host device, thereby formed a physical-host-mdev hierarchy, and highly reused Linux driver core support; - Added online/offline to mdev_bus_type, leveraging the 'online' attr support from Linux driver core; - Removed mdev_class and other unecessary stuff; /* * Given the changes above, the code volume of mdev core driver * dramatically reduced by ~50%. */ - Interfaces between vfio_mdev and vendor driver are high-level, e.g. ioctl instead of get_irq_info/set_irq_info and reset, start/stop became mdev oriented, etc.; /* * Given the changes above, the code volume of mdev core driver * dramatically reduced by ~64%. */ Test - Tested with KVMGT TODO - Re-implement the attribute group of host device as long as the sysfs hierarchy in discussion gets finalized; - Move common routines from current vfio-pci into a higher location, export them for various VFIO bus drivers and/or mdev vendor drivers; - Add implementation examples for vendor drivers to Documentation; - Refine IOMMU changes Jike Song (2): Mediated device Core driver vfio: VFIO bus driver for MDEV devices Kirti Wankhede (2): vfio iommu: Add support for mediated devices docs: Add Documentation for Mediated devices Documentation/vfio-mediated-device.txt | 203 ++++++++++++++ drivers/vfio/Kconfig | 1 + drivers/vfio/Makefile | 1 + drivers/vfio/mdev/Kconfig | 18 ++ drivers/vfio/mdev/Makefile | 5 + drivers/vfio/mdev/mdev_core.c | 250 +++++++++++++++++ drivers/vfio/mdev/mdev_driver.c | 155 ++++++++++ drivers/vfio/mdev/mdev_private.h | 29 ++ drivers/vfio/mdev/mdev_sysfs.c | 155 ++++++++++ drivers/vfio/mdev/vfio_mdev.c | 187 ++++++++++++ drivers/vfio/vfio.c | 82 ++++++ drivers/vfio/vfio_iommu_type1.c | 499 +++++++++++++++++++++++++++++---- include/linux/mdev.h | 159 +++++++++++ include/linux/vfio.h | 13 +- 14 files changed, 1709 insertions(+), 48 deletions(-) create mode 100644 Documentation/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 -- 1.9.1 From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:52179) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bfjh7-0004Oe-7b for qemu-devel@nongnu.org; Fri, 02 Sep 2016 04:19:26 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1bfjh1-0007B2-2V for qemu-devel@nongnu.org; Fri, 02 Sep 2016 04:19:23 -0400 Received: from mga05.intel.com ([192.55.52.43]:48821) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bfjh0-0007Aw-SY for qemu-devel@nongnu.org; Fri, 02 Sep 2016 04:19:18 -0400 From: Jike Song Date: Fri, 2 Sep 2016 16:16:08 +0800 Message-Id: <1472804172-25542-1-git-send-email-jike.song@intel.com> Subject: [Qemu-devel] [RFC v2 0/4] adding mdev bus and vfio support List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: alex.williamson@redhat.com, kwankhede@nvidia.com, cjia@nvidia.com Cc: qemu-devel@nongnu.org, kvm@vger.kernel.org, bjsdjshi@linux.vnet.ibm.com, kevin.tian@intel.com, guangrong.xiao@linux.intel.com, zhenyuw@linux.intel.com, zhiyuan.lv@intel.com, jike.song@intel.com, pbonzini@redhat.com, kraxel@redhat.com This patchset is based on NVidia's "Add Mediated device support" series, version 6: http://www.spinics.net/lists/kvm/msg136472.html Key Changes from Nvidia v6: - Introduced an independent struct device to host device, thereby formed a physical-host-mdev hierarchy, and highly reused Linux driver core support; - Added online/offline to mdev_bus_type, leveraging the 'online' attr support from Linux driver core; - Removed mdev_class and other unecessary stuff; /* * Given the changes above, the code volume of mdev core driver * dramatically reduced by ~50%. */ - Interfaces between vfio_mdev and vendor driver are high-level, e.g. ioctl instead of get_irq_info/set_irq_info and reset, start/stop became mdev oriented, etc.; /* * Given the changes above, the code volume of mdev core driver * dramatically reduced by ~64%. */ Test - Tested with KVMGT TODO - Re-implement the attribute group of host device as long as the sysfs hierarchy in discussion gets finalized; - Move common routines from current vfio-pci into a higher location, export them for various VFIO bus drivers and/or mdev vendor drivers; - Add implementation examples for vendor drivers to Documentation; - Refine IOMMU changes Jike Song (2): Mediated device Core driver vfio: VFIO bus driver for MDEV devices Kirti Wankhede (2): vfio iommu: Add support for mediated devices docs: Add Documentation for Mediated devices Documentation/vfio-mediated-device.txt | 203 ++++++++++++++ drivers/vfio/Kconfig | 1 + drivers/vfio/Makefile | 1 + drivers/vfio/mdev/Kconfig | 18 ++ drivers/vfio/mdev/Makefile | 5 + drivers/vfio/mdev/mdev_core.c | 250 +++++++++++++++++ drivers/vfio/mdev/mdev_driver.c | 155 ++++++++++ drivers/vfio/mdev/mdev_private.h | 29 ++ drivers/vfio/mdev/mdev_sysfs.c | 155 ++++++++++ drivers/vfio/mdev/vfio_mdev.c | 187 ++++++++++++ drivers/vfio/vfio.c | 82 ++++++ drivers/vfio/vfio_iommu_type1.c | 499 +++++++++++++++++++++++++++++---- include/linux/mdev.h | 159 +++++++++++ include/linux/vfio.h | 13 +- 14 files changed, 1709 insertions(+), 48 deletions(-) create mode 100644 Documentation/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 -- 1.9.1