Re: [PATCH v13 00/18] VFIO support for platform devices
Thanks for your answers. I am now the sub-maintainer of vfio-platform. I will handle the rebase of these serie and fix [PATCH v3 0/6] vfio: type1: support for ARM SMMUS with VFIO_IOMMU_TYPE1. New versions are coming soon. Regards, Baptiste On Thu, Feb 26, 2015 at 6:32 PM, Marc Zyngier marc.zyng...@arm.com wrote: Hi Baptiste, On 26/02/15 17:02, Baptiste Reynal wrote: Hi everyone, Are there any comments on this patch series? If not, Is there anything keeping this series from getting merged upstream? For a start, it looks like the dependency mentioned below is still not in, which is a bit of a problem. Also, trying to merge your branch below (after fixing the URL), I get some conflicts with the current mainline, so that's a bit of a show stopper too. Can you start by rebasing on top of 4.0-rc1 with all the dependencies, reposting the series, and cc-ing the original author of the patches (as I cannot see Antonios on the CC list)? Thanks, M. Thanks, Baptiste On Fri, Jan 30, 2015 at 2:46 PM, Baptiste Reynal b.rey...@virtualopensystems.commailto:b.rey...@virtualopensystems.com wrote: This patch series aims to implement VFIO support for platform devices that reside behind an IOMMU. Examples of such devices are devices behind an ARM SMMU, or behind a Samsung Exynos System MMU. The API used is based on the existing VFIO API that is also used with PCI devices. Only devices that include a basic set of IRQs and memory regions are targeted; devices with complex relationships with other devices on a device tree are not taken into account at this stage. This patch series may be applied on the following series/patches: - [PATCH v3 0/6] vfio: type1: support for ARM SMMUS with VFIO_IOMMU_TYPE1 A copy can be cloned from the branch vfio-platform-v13 at: g...@github.com:virtualopensystems/linux-kvm-arm.git Changes since v12: - Reorder chunks to be bisect-able Changes since v11: - Drop support for ARM AMBA devices - vfio_platform_private.h is now self-contained - Fix masked IRQ initialization Changes since v10: - Check if interrupt is already masked when setting a new trigger - Fixed kasprintf with unchecked return value in VFIO AMBA driver Changes since v9: - Reworked the splitting of the patches that decouple virqfd from PCI - Some styling issues and typos - Removed superfluous includes - AMBA devices are now named vfio-amba- suffixed by the AMBA device id - Several other cleanups and fixes Changes since v8: - Separate irq handler for edge and level triggered interrupts - Mutex based lock for VFIO fd open/release - Fixed bug where the first region of a platform device wasn't exposed - Read only regions can be MMAPed only read only - Code cleanups Changes since v7: - Some initial placeholder functionality for PIO resources - Cleaned up code for IRQ triggering, masking and unmasking - Some functionality has been removed from this series and posted separately: - VFIO_IOMMU_TYPE1 support for ARM SMMUs - IOMMU NOEXEC patches - driver_override functionality for AMBA devices - Several fixes Changes since v6: - Integrated support for AMBA devices - Numerous cleanups and fixes Changes since v5: - Full eventfd support for IRQ masking and unmasking. - Changed IOMMU_EXEC to IOMMU_NOEXEC, along with related flags in VFIO. - Other fixes based on reviewer comments. Changes since v4: - Use static offsets for each region in the VFIO device fd - Include patch in the series for the ARM SMMU to expose IOMMU_EXEC availability via IOMMU_CAP_DMA_EXEC - Rebased on VFIO multi domain support: - IOMMU_EXEC is now available if at least one IOMMU in the container supports it - Expose IOMMU_EXEC if available via the capability VFIO_IOMMU_PROT_EXEC - Some bug fixes Changes since v3: - Use Kim Phillips' driver_probe_device() Changes since v2: - Fixed Read/Write and MMAP on device regions - Removed dependency on Device Tree - Interrupts support - Interrupt masking/unmasking - Automask level sensitive interrupts - Introduced VFIO_DMA_MAP_FLAG_EXEC - Code clean ups Antonios Motakis (18): vfio/platform: initial skeleton of VFIO support for platform devices vfio: platform: probe to devices on the platform bus vfio: platform: add the VFIO PLATFORM module to Kconfig vfio/platform: return info for bound device vfio/platform: return info for device memory mapped IO regions vfio/platform: read and write support for the device fd vfio/platform: support MMAP of MMIO regions vfio/platform: return IRQ info vfio/platform: initial interrupts support code vfio/platform: trigger an interrupt via eventfd vfio/platform: support for level sensitive interrupts vfio: add a vfio_ prefix to virqfd_enable and virqfd_disable and export vfio: virqfd: rename
Re: [PATCH v13 00/18] VFIO support for platform devices
Hi everyone, Are there any comments on this patch series? If not, Is there anything keeping this series from getting merged upstream? Thanks, Baptiste On Fri, Jan 30, 2015 at 2:46 PM, Baptiste Reynal b.rey...@virtualopensystems.com wrote: This patch series aims to implement VFIO support for platform devices that reside behind an IOMMU. Examples of such devices are devices behind an ARM SMMU, or behind a Samsung Exynos System MMU. The API used is based on the existing VFIO API that is also used with PCI devices. Only devices that include a basic set of IRQs and memory regions are targeted; devices with complex relationships with other devices on a device tree are not taken into account at this stage. This patch series may be applied on the following series/patches: - [PATCH v3 0/6] vfio: type1: support for ARM SMMUS with VFIO_IOMMU_TYPE1 A copy can be cloned from the branch vfio-platform-v13 at: g...@github.com:virtualopensystems/linux-kvm-arm.git Changes since v12: - Reorder chunks to be bisect-able Changes since v11: - Drop support for ARM AMBA devices - vfio_platform_private.h is now self-contained - Fix masked IRQ initialization Changes since v10: - Check if interrupt is already masked when setting a new trigger - Fixed kasprintf with unchecked return value in VFIO AMBA driver Changes since v9: - Reworked the splitting of the patches that decouple virqfd from PCI - Some styling issues and typos - Removed superfluous includes - AMBA devices are now named vfio-amba- suffixed by the AMBA device id - Several other cleanups and fixes Changes since v8: - Separate irq handler for edge and level triggered interrupts - Mutex based lock for VFIO fd open/release - Fixed bug where the first region of a platform device wasn't exposed - Read only regions can be MMAPed only read only - Code cleanups Changes since v7: - Some initial placeholder functionality for PIO resources - Cleaned up code for IRQ triggering, masking and unmasking - Some functionality has been removed from this series and posted separately: - VFIO_IOMMU_TYPE1 support for ARM SMMUs - IOMMU NOEXEC patches - driver_override functionality for AMBA devices - Several fixes Changes since v6: - Integrated support for AMBA devices - Numerous cleanups and fixes Changes since v5: - Full eventfd support for IRQ masking and unmasking. - Changed IOMMU_EXEC to IOMMU_NOEXEC, along with related flags in VFIO. - Other fixes based on reviewer comments. Changes since v4: - Use static offsets for each region in the VFIO device fd - Include patch in the series for the ARM SMMU to expose IOMMU_EXEC availability via IOMMU_CAP_DMA_EXEC - Rebased on VFIO multi domain support: - IOMMU_EXEC is now available if at least one IOMMU in the container supports it - Expose IOMMU_EXEC if available via the capability VFIO_IOMMU_PROT_EXEC - Some bug fixes Changes since v3: - Use Kim Phillips' driver_probe_device() Changes since v2: - Fixed Read/Write and MMAP on device regions - Removed dependency on Device Tree - Interrupts support - Interrupt masking/unmasking - Automask level sensitive interrupts - Introduced VFIO_DMA_MAP_FLAG_EXEC - Code clean ups Antonios Motakis (18): vfio/platform: initial skeleton of VFIO support for platform devices vfio: platform: probe to devices on the platform bus vfio: platform: add the VFIO PLATFORM module to Kconfig vfio/platform: return info for bound device vfio/platform: return info for device memory mapped IO regions vfio/platform: read and write support for the device fd vfio/platform: support MMAP of MMIO regions vfio/platform: return IRQ info vfio/platform: initial interrupts support code vfio/platform: trigger an interrupt via eventfd vfio/platform: support for level sensitive interrupts vfio: add a vfio_ prefix to virqfd_enable and virqfd_disable and export vfio: virqfd: rename vfio_pci_virqfd_init and vfio_pci_virqfd_exit vfio: add local lock for virqfd instead of depending on VFIO PCI vfio: pass an opaque pointer on virqfd initialization vfio: move eventfd support code for VFIO_PCI to a separate file vfio: initialize the virqfd workqueue in VFIO generic code vfio/platform: implement IRQ masking/unmasking via an eventfd drivers/vfio/Kconfig | 1 + drivers/vfio/Makefile | 5 +- drivers/vfio/pci/vfio_pci.c | 8 - drivers/vfio/pci/vfio_pci_intrs.c | 238 +--- drivers/vfio/pci/vfio_pci_private.h | 3 - drivers/vfio/platform/Kconfig | 9 + drivers/vfio/platform/Makefile| 4 + drivers/vfio/platform/vfio_platform.c | 103 + drivers/vfio/platform/vfio_platform_common.c | 521 ++ drivers/vfio/platform/vfio_platform_irq.c | 336 +
Re: [PATCH v13 00/18] VFIO support for platform devices
Hi Baptiste, On Thu, 2015-02-26 at 18:02 +0100, Baptiste Reynal wrote: Hi everyone, Are there any comments on this patch series? If not, Is there anything keeping this series from getting merged upstream? Thanks, Baptiste On Fri, Jan 30, 2015 at 2:46 PM, Baptiste Reynal b.rey...@virtualopensystems.com wrote: This patch series aims to implement VFIO support for platform devices that reside behind an IOMMU. Examples of such devices are devices behind an ARM SMMU, or behind a Samsung Exynos System MMU. The API used is based on the existing VFIO API that is also used with PCI devices. Only devices that include a basic set of IRQs and memory regions are targeted; devices with complex relationships with other devices on a device tree are not taken into account at this stage. This patch series may be applied on the following series/patches: - [PATCH v3 0/6] vfio: type1: support for ARM SMMUS with VFIO_IOMMU_TYPE1 Unfortunately, this patch set you depend on seems to have been abandoned: http://www.spinics.net/lists/kvm/msg112976.html We can't use an enum as a bitfield. This also highlights a bit of an issue with vfio-platform, who is to be the sub-maintainer? Is it you? Antonios? Me? I can't even test this code, so I'm hoping there's someone signed up to prevent this code from immediately bit rotting. Thanks, Alex A copy can be cloned from the branch vfio-platform-v13 at: g...@github.com:virtualopensystems/linux-kvm-arm.git Changes since v12: - Reorder chunks to be bisect-able Changes since v11: - Drop support for ARM AMBA devices - vfio_platform_private.h is now self-contained - Fix masked IRQ initialization Changes since v10: - Check if interrupt is already masked when setting a new trigger - Fixed kasprintf with unchecked return value in VFIO AMBA driver Changes since v9: - Reworked the splitting of the patches that decouple virqfd from PCI - Some styling issues and typos - Removed superfluous includes - AMBA devices are now named vfio-amba- suffixed by the AMBA device id - Several other cleanups and fixes Changes since v8: - Separate irq handler for edge and level triggered interrupts - Mutex based lock for VFIO fd open/release - Fixed bug where the first region of a platform device wasn't exposed - Read only regions can be MMAPed only read only - Code cleanups Changes since v7: - Some initial placeholder functionality for PIO resources - Cleaned up code for IRQ triggering, masking and unmasking - Some functionality has been removed from this series and posted separately: - VFIO_IOMMU_TYPE1 support for ARM SMMUs - IOMMU NOEXEC patches - driver_override functionality for AMBA devices - Several fixes Changes since v6: - Integrated support for AMBA devices - Numerous cleanups and fixes Changes since v5: - Full eventfd support for IRQ masking and unmasking. - Changed IOMMU_EXEC to IOMMU_NOEXEC, along with related flags in VFIO. - Other fixes based on reviewer comments. Changes since v4: - Use static offsets for each region in the VFIO device fd - Include patch in the series for the ARM SMMU to expose IOMMU_EXEC availability via IOMMU_CAP_DMA_EXEC - Rebased on VFIO multi domain support: - IOMMU_EXEC is now available if at least one IOMMU in the container supports it - Expose IOMMU_EXEC if available via the capability VFIO_IOMMU_PROT_EXEC - Some bug fixes Changes since v3: - Use Kim Phillips' driver_probe_device() Changes since v2: - Fixed Read/Write and MMAP on device regions - Removed dependency on Device Tree - Interrupts support - Interrupt masking/unmasking - Automask level sensitive interrupts - Introduced VFIO_DMA_MAP_FLAG_EXEC - Code clean ups Antonios Motakis (18): vfio/platform: initial skeleton of VFIO support for platform devices vfio: platform: probe to devices on the platform bus vfio: platform: add the VFIO PLATFORM module to Kconfig vfio/platform: return info for bound device vfio/platform: return info for device memory mapped IO regions vfio/platform: read and write support for the device fd vfio/platform: support MMAP of MMIO regions vfio/platform: return IRQ info vfio/platform: initial interrupts support code vfio/platform: trigger an interrupt via eventfd vfio/platform: support for level sensitive interrupts vfio: add a vfio_ prefix to virqfd_enable and virqfd_disable and export vfio: virqfd: rename vfio_pci_virqfd_init and vfio_pci_virqfd_exit vfio: add local lock for virqfd instead of depending on VFIO PCI vfio: pass an opaque pointer on virqfd initialization vfio: move eventfd support code for VFIO_PCI to a separate file vfio: initialize the virqfd workqueue in VFIO generic code vfio/platform: implement IRQ masking/unmasking via an eventfd drivers/vfio/Kconfig
Re: [PATCH v13 00/18] VFIO support for platform devices
Hi Baptiste, On 26/02/15 17:02, Baptiste Reynal wrote: Hi everyone, Are there any comments on this patch series? If not, Is there anything keeping this series from getting merged upstream? For a start, it looks like the dependency mentioned below is still not in, which is a bit of a problem. Also, trying to merge your branch below (after fixing the URL), I get some conflicts with the current mainline, so that's a bit of a show stopper too. Can you start by rebasing on top of 4.0-rc1 with all the dependencies, reposting the series, and cc-ing the original author of the patches (as I cannot see Antonios on the CC list)? Thanks, M. Thanks, Baptiste On Fri, Jan 30, 2015 at 2:46 PM, Baptiste Reynal b.rey...@virtualopensystems.commailto:b.rey...@virtualopensystems.com wrote: This patch series aims to implement VFIO support for platform devices that reside behind an IOMMU. Examples of such devices are devices behind an ARM SMMU, or behind a Samsung Exynos System MMU. The API used is based on the existing VFIO API that is also used with PCI devices. Only devices that include a basic set of IRQs and memory regions are targeted; devices with complex relationships with other devices on a device tree are not taken into account at this stage. This patch series may be applied on the following series/patches: - [PATCH v3 0/6] vfio: type1: support for ARM SMMUS with VFIO_IOMMU_TYPE1 A copy can be cloned from the branch vfio-platform-v13 at: g...@github.com:virtualopensystems/linux-kvm-arm.git Changes since v12: - Reorder chunks to be bisect-able Changes since v11: - Drop support for ARM AMBA devices - vfio_platform_private.h is now self-contained - Fix masked IRQ initialization Changes since v10: - Check if interrupt is already masked when setting a new trigger - Fixed kasprintf with unchecked return value in VFIO AMBA driver Changes since v9: - Reworked the splitting of the patches that decouple virqfd from PCI - Some styling issues and typos - Removed superfluous includes - AMBA devices are now named vfio-amba- suffixed by the AMBA device id - Several other cleanups and fixes Changes since v8: - Separate irq handler for edge and level triggered interrupts - Mutex based lock for VFIO fd open/release - Fixed bug where the first region of a platform device wasn't exposed - Read only regions can be MMAPed only read only - Code cleanups Changes since v7: - Some initial placeholder functionality for PIO resources - Cleaned up code for IRQ triggering, masking and unmasking - Some functionality has been removed from this series and posted separately: - VFIO_IOMMU_TYPE1 support for ARM SMMUs - IOMMU NOEXEC patches - driver_override functionality for AMBA devices - Several fixes Changes since v6: - Integrated support for AMBA devices - Numerous cleanups and fixes Changes since v5: - Full eventfd support for IRQ masking and unmasking. - Changed IOMMU_EXEC to IOMMU_NOEXEC, along with related flags in VFIO. - Other fixes based on reviewer comments. Changes since v4: - Use static offsets for each region in the VFIO device fd - Include patch in the series for the ARM SMMU to expose IOMMU_EXEC availability via IOMMU_CAP_DMA_EXEC - Rebased on VFIO multi domain support: - IOMMU_EXEC is now available if at least one IOMMU in the container supports it - Expose IOMMU_EXEC if available via the capability VFIO_IOMMU_PROT_EXEC - Some bug fixes Changes since v3: - Use Kim Phillips' driver_probe_device() Changes since v2: - Fixed Read/Write and MMAP on device regions - Removed dependency on Device Tree - Interrupts support - Interrupt masking/unmasking - Automask level sensitive interrupts - Introduced VFIO_DMA_MAP_FLAG_EXEC - Code clean ups Antonios Motakis (18): vfio/platform: initial skeleton of VFIO support for platform devices vfio: platform: probe to devices on the platform bus vfio: platform: add the VFIO PLATFORM module to Kconfig vfio/platform: return info for bound device vfio/platform: return info for device memory mapped IO regions vfio/platform: read and write support for the device fd vfio/platform: support MMAP of MMIO regions vfio/platform: return IRQ info vfio/platform: initial interrupts support code vfio/platform: trigger an interrupt via eventfd vfio/platform: support for level sensitive interrupts vfio: add a vfio_ prefix to virqfd_enable and virqfd_disable and export vfio: virqfd: rename vfio_pci_virqfd_init and vfio_pci_virqfd_exit vfio: add local lock for virqfd instead of depending on VFIO PCI vfio: pass an opaque pointer on virqfd initialization vfio: move eventfd support code for VFIO_PCI to a separate file vfio: initialize the virqfd workqueue in VFIO generic code vfio/platform: implement IRQ masking/unmasking via an eventfd drivers/vfio/Kconfig | 1 +