Re: [PATCH v3 04/10] VFIO: platform: add vfio_platform_set_automasked

2015-08-31 Thread Antonios Motakis
ails based on the state of > the forward. The user always needs to handle the interrupt as level > since the bypass can be torn down at any point in time. We're taking > advantage of the in-kernel path to make further optimizations, which > seems like they should be tran

Re: [PATCH 00/13] arm64: Virtualization Host Extension support

2015-08-26 Thread Antonios Motakis
On 26-Aug-15 11:59, Marc Zyngier wrote: > On 26/08/15 10:21, Jan Kiszka wrote: >> On 2015-08-26 11:12, Antonios Motakis wrote: >>> Hello Marc, >>> >>> On 08-Jul-15 18:19, Marc Zyngier wrote: >>>> ARMv8.1 comes with the "Virtualization Host Ex

Re: [PATCH 00/13] arm64: Virtualization Host Extension support

2015-08-26 Thread Antonios Motakis
On 26-Aug-15 11:21, Jan Kiszka wrote: > On 2015-08-26 11:12, Antonios Motakis wrote: >> Hello Marc, >> >> On 08-Jul-15 18:19, Marc Zyngier wrote: >>> ARMv8.1 comes with the "Virtualization Host Extension" (VHE for >>> short), which enables si

Re: [PATCH 00/13] arm64: Virtualization Host Extension support

2015-08-26 Thread Antonios Motakis
> arch/arm64/kvm/hyp-init.S| 9 +- > arch/arm64/kvm/hyp.S | 363 > --- > arch/arm64/kvm/vgic-v2-switch.S | 19 +- > arch/arm64/kvm/vgic-v3-switch.S | 33 ++-- > arch/arm64/kvm/vhe-macros.h | 54 +++

[PATCH v11 17/20] vfio: pass an opaque pointer on virqfd initialization

2015-01-06 Thread Antonios Motakis
VFIO_PCI passes the VFIO device structure *vdev via eventfd to the handler that implements masking/unmasking of IRQs via an eventfd. We can replace it in the virqfd infrastructure with an opaque type so we can make use of the mechanism from other VFIO bus drivers. Signed-off-by: Antonios Motakis

[PATCH v11 20/20] vfio/platform: implement IRQ masking/unmasking via an eventfd

2015-01-06 Thread Antonios Motakis
With this patch the VFIO user will be able to set an eventfd that can be used in order to mask and unmask IRQs of platform devices. Signed-off-by: Antonios Motakis --- drivers/vfio/platform/vfio_platform_irq.c | 47 --- drivers/vfio/platform/vfio_platform_private.h

[PATCH v11 08/20] vfio/platform: read and write support for the device fd

2015-01-06 Thread Antonios Motakis
. For this reason we also allow to use read and write functions to the file descriptor pointing to the memory regions. We implement this functionality only for MMIO regions of platform devices; PIO regions are not being handled at this point. Signed-off-by: Antonios Motakis --- drivers/vfio

[PATCH v11 16/20] vfio: add local lock for virqfd instead of depending on VFIO PCI

2015-01-06 Thread Antonios Motakis
The Virqfd code needs to keep accesses to any struct *virqfd safe, but this comes into play only when creating or destroying eventfds, so sharing the same spinlock with the VFIO bus driver is not necessary. Signed-off-by: Antonios Motakis --- drivers/vfio/pci/vfio_pci_intrs.c | 31

[PATCH v11 19/20] vfio: initialize the virqfd workqueue in VFIO generic code

2015-01-06 Thread Antonios Motakis
Now we have finally completely decoupled virqfd from VFIO_PCI. We can initialize it from the VFIO generic code, in order to safely use it from multiple independent VFIO bus drivers. Signed-off-by: Antonios Motakis --- drivers/vfio/Makefile | 4 +++- drivers/vfio/pci/Makefile | 3

[PATCH v11 14/20] vfio: add a vfio_ prefix to virqfd_enable and virqfd_disable and export

2015-01-06 Thread Antonios Motakis
We want to reuse virqfd functionality in multiple VFIO drivers; before moving these functions to core VFIO, add the vfio_ prefix to the virqfd_enable and virqfd_disable functions, and export them so they can be used from other modules. Signed-off-by: Antonios Motakis --- drivers/vfio/pci

[PATCH v11 12/20] vfio/platform: trigger an interrupt via eventfd

2015-01-06 Thread Antonios Motakis
d are implemented here using a simple and efficient IRQ handler. Signed-off-by: Antonios Motakis --- drivers/vfio/platform/vfio_platform_irq.c | 102 +- drivers/vfio/platform/vfio_platform_private.h | 2 + 2 files changed, 102 insertions(+), 2 deletions(-) diff --git a/dr

[PATCH v11 18/20] vfio: move eventfd support code for VFIO_PCI to a separate file

2015-01-06 Thread Antonios Motakis
The virqfd functionality that is used by VFIO_PCI to implement interrupt masking and unmasking via an eventfd, is generic enough and can be reused by another driver. Move it to a separate file in order to allow the code to be shared. Signed-off-by: Antonios Motakis --- drivers/vfio/pci/Makefile

[PATCH v11 15/20] vfio: virqfd: rename vfio_pci_virqfd_init and vfio_pci_virqfd_exit

2015-01-06 Thread Antonios Motakis
The functions vfio_pci_virqfd_init and vfio_pci_virqfd_exit are not really PCI specific, since we plan to reuse the virqfd code with more VFIO drivers in addition to VFIO_PCI. Signed-off-by: Antonios Motakis --- drivers/vfio/pci/vfio_pci.c | 6 +++--- drivers/vfio/pci/vfio_pci_intrs.c | 4

[PATCH v11 13/20] vfio/platform: support for level sensitive interrupts

2015-01-06 Thread Antonios Motakis
Level sensitive interrupts are exposed as maskable and automasked interrupts and are masked and disabled automatically when they fire. Signed-off-by: Antonios Motakis --- drivers/vfio/platform/vfio_platform_irq.c | 99 ++- drivers/vfio/platform

[PATCH v11 11/20] vfio/platform: initial interrupts support code

2015-01-06 Thread Antonios Motakis
This patch is a skeleton for the VFIO_DEVICE_SET_IRQS IOCTL, around which most IRQ functionality is implemented in VFIO. Signed-off-by: Antonios Motakis --- drivers/vfio/platform/vfio_platform_common.c | 52 +-- drivers/vfio/platform/vfio_platform_irq.c | 59

[PATCH v11 10/20] vfio/platform: return IRQ info

2015-01-06 Thread Antonios Motakis
Return information for the interrupts exposed by the device. This patch extends VFIO_DEVICE_GET_INFO with the number of IRQs and enables VFIO_DEVICE_GET_IRQ_INFO. Signed-off-by: Antonios Motakis --- drivers/vfio/platform/Makefile| 2 +- drivers/vfio/platform

[PATCH v11 04/20] vfio: amba: VFIO support for AMBA devices

2015-01-06 Thread Antonios Motakis
Add support for discovering AMBA devices with VFIO and handle them similarly to Linux platform devices. Signed-off-by: Antonios Motakis --- drivers/vfio/platform/vfio_amba.c | 115 ++ include/uapi/linux/vfio.h | 1 + 2 files changed, 116 insertions

[PATCH v11 07/20] vfio/platform: return info for device memory mapped IO regions

2015-01-06 Thread Antonios Motakis
This patch enables the IOCTLs VFIO_DEVICE_GET_REGION_INFO ioctl call, which allows the user to learn about the available MMIO resources of a device. Signed-off-by: Antonios Motakis --- drivers/vfio/platform/vfio_platform_common.c | 106 +- drivers/vfio/platform

[PATCH v11 06/20] vfio/platform: return info for bound device

2015-01-06 Thread Antonios Motakis
-off-by: Antonios Motakis --- drivers/vfio/platform/vfio_platform_common.c | 23 --- 1 file changed, 20 insertions(+), 3 deletions(-) diff --git a/drivers/vfio/platform/vfio_platform_common.c b/drivers/vfio/platform/vfio_platform_common.c index 34d023b..862b43b 100644 --- a

[PATCH v11 09/20] vfio/platform: support MMAP of MMIO regions

2015-01-06 Thread Antonios Motakis
Allow to memory map the MMIO regions of the device so userspace can directly access them. PIO regions are not being handled at this point. Signed-off-by: Antonios Motakis --- drivers/vfio/platform/vfio_platform_common.c | 65 1 file changed, 65 insertions(+) diff

[PATCH v11 05/20] vfio: amba: add the VFIO for AMBA devices module to Kconfig

2015-01-06 Thread Antonios Motakis
Enable building the VFIO AMBA driver. VFIO_AMBA depends on VFIO_PLATFORM, since it is sharing a portion of the code, and it is essentially implemented as a platform device whose resources are discovered via AMBA specific APIs in the kernel. Signed-off-by: Antonios Motakis --- drivers/vfio

[PATCH v11 03/20] vfio: platform: add the VFIO PLATFORM module to Kconfig

2015-01-06 Thread Antonios Motakis
Enable building the VFIO PLATFORM driver that allows to use Linux platform devices with VFIO. Signed-off-by: Antonios Motakis --- drivers/vfio/Kconfig | 1 + drivers/vfio/Makefile | 1 + drivers/vfio/platform/Kconfig | 9 + drivers/vfio/platform/Makefile | 4 4

[PATCH v11 02/20] vfio: platform: probe to devices on the platform bus

2015-01-06 Thread Antonios Motakis
Driver to bind to Linux platform devices, and callbacks to discover their resources to be used by the main VFIO PLATFORM code. Signed-off-by: Antonios Motakis --- drivers/vfio/platform/vfio_platform.c | 103 ++ include/uapi/linux/vfio.h | 1 + 2

[PATCH v11 01/20] vfio/platform: initial skeleton of VFIO support for platform devices

2015-01-06 Thread Antonios Motakis
will reside. This will allow us to implement support for also discovering AMBA devices and their resources, but still reuse a large part of the VFIO_PLATFORM implementation. Signed-off-by: Antonios Motakis --- drivers/vfio/platform/vfio_platform_common.c | 121 ++ drivers

[RFC PATCH v3 3/3] vfio: platform: return device properties as arrays of unsigned integers

2014-12-19 Thread Antonios Motakis
Certain properties of a device are accessible as an array of unsigned integers, either u64, u32, u16, or u8. Let the VFIO user query this type of device properties. Signed-off-by: Antonios Motakis --- drivers/vfio/platform/properties.c | 62 +- 1 file changed

[RFC PATCH v3 1/3] vfio: platform: add device properties skeleton and user API

2014-12-19 Thread Antonios Motakis
VFIO_DEVICE_GET_DEV_PROPERTY. The user needs to know the name and the data type of the property he is accessing. Signed-off-by: Antonios Motakis --- drivers/vfio/platform/Makefile| 3 +- drivers/vfio/platform/properties.c| 61 +++ drivers/vfio/platform

[RFC PATCH v3 2/3] vfio: platform: access device property as a list of strings

2014-12-19 Thread Antonios Motakis
Certain device properties (e.g. the device node name, the compatible string), are available as a list of strings (separated by the null terminating character). Let the VFIO user query this type of properties. Signed-off-by: Antonios Motakis --- drivers/vfio/platform/properties.c | 43

Re: [REPORT PATCH] driver core: amba: add device binding path 'driver_override'

2014-12-10 Thread Antonios Motakis
Dear Russel, Do you think this patch can be included eventually? If not, what would we still need to change, or is there another approach you would accept? Thanks and best regards, Antonios On Thu, Nov 27, 2014 at 6:25 PM, Antonios Motakis wrote: > As already demonstrated with PCI [1] and

[PATCH v10 04/20] vfio: amba: VFIO support for AMBA devices

2014-12-09 Thread Antonios Motakis
Add support for discovering AMBA devices with VFIO and handle them similarly to Linux platform devices. Signed-off-by: Antonios Motakis --- drivers/vfio/platform/vfio_amba.c | 115 ++ include/uapi/linux/vfio.h | 1 + 2 files changed, 116 insertions

[PATCH v10 11/20] vfio/platform: initial interrupts support code

2014-11-27 Thread Antonios Motakis
This patch is a skeleton for the VFIO_DEVICE_SET_IRQS IOCTL, around which most IRQ functionality is implemented in VFIO. Signed-off-by: Antonios Motakis --- drivers/vfio/platform/vfio_platform_common.c | 52 +-- drivers/vfio/platform/vfio_platform_irq.c | 59

[PATCH v10 13/20] vfio/platform: support for level sensitive interrupts

2014-11-27 Thread Antonios Motakis
Level sensitive interrupts are exposed as maskable and automasked interrupts and are masked and disabled automatically when they fire. Signed-off-by: Antonios Motakis --- drivers/vfio/platform/vfio_platform_irq.c | 99 ++- drivers/vfio/platform

[PATCH v10 14/20] vfio: add a vfio_ prefix to virqfd_enable and virqfd_disable and export

2014-11-27 Thread Antonios Motakis
We want to reuse virqfd functionality in multiple VFIO drivers; before moving these functions to core VFIO, add the vfio_ prefix to the virqfd_enable and virqfd_disable functions, and export them so they can be used from other modules. Signed-off-by: Antonios Motakis --- drivers/vfio/pci

[PATCH v10 15/20] vfio: virqfd: rename vfio_pci_virqfd_init and vfio_pci_virqfd_exit

2014-11-27 Thread Antonios Motakis
The functions vfio_pci_virqfd_init and vfio_pci_virqfd_exit are not really PCI specific, since we plan to reuse the virqfd code with more VFIO drivers in addition to VFIO_PCI. Signed-off-by: Antonios Motakis --- drivers/vfio/pci/vfio_pci.c | 6 +++--- drivers/vfio/pci/vfio_pci_intrs.c | 4

[PATCH v10 16/20] vfio: add local lock for virqfd instead of depending on VFIO PCI

2014-11-27 Thread Antonios Motakis
The Virqfd code needs to keep accesses to any struct *virqfd safe, but this comes into play only when creating or destroying eventfds, so sharing the same spinlock with the VFIO bus driver is not necessary. Signed-off-by: Antonios Motakis --- drivers/vfio/pci/vfio_pci_intrs.c | 31

[PATCH v10 17/20] vfio: pass an opaque pointer on virqfd initialization

2014-11-27 Thread Antonios Motakis
VFIO_PCI passes the VFIO device structure *vdev via eventfd to the handler that implements masking/unmasking of IRQs via an eventfd. We can replace it in the virqfd infrastructure with an opaque type so we can make use of the mechanism from other VFIO bus drivers. Signed-off-by: Antonios Motakis

[PATCH v10 18/20] vfio: move eventfd support code for VFIO_PCI to a separate file

2014-11-27 Thread Antonios Motakis
The virqfd functionality that is used by VFIO_PCI to implement interrupt masking and unmasking via an eventfd, is generic enough and can be reused by another driver. Move it to a separate file in order to allow the code to be shared. Signed-off-by: Antonios Motakis --- drivers/vfio/pci/Makefile

[PATCH v10 19/20] vfio: initialize the virqfd workqueue in VFIO generic code

2014-11-27 Thread Antonios Motakis
Now we have finally completely decoupled virqfd from VFIO_PCI. We can initialize it from the VFIO generic code, in order to safely use it from multiple independent VFIO bus drivers. Signed-off-by: Antonios Motakis --- drivers/vfio/Makefile | 4 +++- drivers/vfio/pci/Makefile | 3

[PATCH v10 20/20] vfio/platform: implement IRQ masking/unmasking via an eventfd

2014-11-27 Thread Antonios Motakis
With this patch the VFIO user will be able to set an eventfd that can be used in order to mask and unmask IRQs of platform devices. Signed-off-by: Antonios Motakis --- drivers/vfio/platform/vfio_platform_irq.c | 47 --- drivers/vfio/platform/vfio_platform_private.h

[PATCH v10 10/20] vfio/platform: return IRQ info

2014-11-27 Thread Antonios Motakis
Return information for the interrupts exposed by the device. This patch extends VFIO_DEVICE_GET_INFO with the number of IRQs and enables VFIO_DEVICE_GET_IRQ_INFO. Signed-off-by: Antonios Motakis --- drivers/vfio/platform/Makefile| 2 +- drivers/vfio/platform

[PATCH v10 12/20] vfio/platform: trigger an interrupt via eventfd

2014-11-27 Thread Antonios Motakis
d are implemented here using a simple and efficient IRQ handler. Signed-off-by: Antonios Motakis --- drivers/vfio/platform/vfio_platform_irq.c | 93 ++- drivers/vfio/platform/vfio_platform_private.h | 2 + 2 files changed, 93 insertions(+), 2 deletions(-) diff --git a/drivers

[PATCH v10 04/20] vfio: amba: VFIO support for AMBA devices

2014-11-27 Thread Antonios Motakis
Add support for discovering AMBA devices with VFIO and handle them similarly to Linux platform devices. Signed-off-by: Antonios Motakis --- drivers/vfio/platform/vfio_amba.c | 110 ++ include/uapi/linux/vfio.h | 1 + 2 files changed, 111 insertions

[PATCH v10 08/20] vfio/platform: read and write support for the device fd

2014-11-27 Thread Antonios Motakis
. For this reason we also allow to use read and write functions to the file descriptor pointing to the memory regions. We implement this functionality only for MMIO regions of platform devices; PIO regions are not being handled at this point. Signed-off-by: Antonios Motakis --- drivers/vfio

[PATCH v10 07/20] vfio/platform: return info for device memory mapped IO regions

2014-11-27 Thread Antonios Motakis
This patch enables the IOCTLs VFIO_DEVICE_GET_REGION_INFO ioctl call, which allows the user to learn about the available MMIO resources of a device. Signed-off-by: Antonios Motakis --- drivers/vfio/platform/vfio_platform_common.c | 106 +- drivers/vfio/platform

[PATCH v10 09/20] vfio/platform: support MMAP of MMIO regions

2014-11-27 Thread Antonios Motakis
Allow to memory map the MMIO regions of the device so userspace can directly access them. PIO regions are not being handled at this point. Signed-off-by: Antonios Motakis --- drivers/vfio/platform/vfio_platform_common.c | 65 1 file changed, 65 insertions(+) diff

[PATCH v10 06/20] vfio/platform: return info for bound device

2014-11-27 Thread Antonios Motakis
-off-by: Antonios Motakis --- drivers/vfio/platform/vfio_platform_common.c | 23 --- 1 file changed, 20 insertions(+), 3 deletions(-) diff --git a/drivers/vfio/platform/vfio_platform_common.c b/drivers/vfio/platform/vfio_platform_common.c index 34d023b..862b43b 100644 --- a

[PATCH v10 05/20] vfio: amba: add the VFIO for AMBA devices module to Kconfig

2014-11-27 Thread Antonios Motakis
Enable building the VFIO AMBA driver. VFIO_AMBA depends on VFIO_PLATFORM, since it is sharing a portion of the code, and it is essentially implemented as a platform device whose resources are discovered via AMBA specific APIs in the kernel. Signed-off-by: Antonios Motakis --- drivers/vfio

[PATCH v10 03/20] vfio: platform: add the VFIO PLATFORM module to Kconfig

2014-11-27 Thread Antonios Motakis
Enable building the VFIO PLATFORM driver that allows to use Linux platform devices with VFIO. Signed-off-by: Antonios Motakis --- drivers/vfio/Kconfig | 1 + drivers/vfio/Makefile | 1 + drivers/vfio/platform/Kconfig | 9 + drivers/vfio/platform/Makefile | 4 4

[PATCH v10 02/20] vfio: platform: probe to devices on the platform bus

2014-11-27 Thread Antonios Motakis
Driver to bind to Linux platform devices, and callbacks to discover their resources to be used by the main VFIO PLATFORM code. Signed-off-by: Antonios Motakis --- drivers/vfio/platform/vfio_platform.c | 103 ++ include/uapi/linux/vfio.h | 1 + 2

[PATCH v10 01/20] vfio/platform: initial skeleton of VFIO support for platform devices

2014-11-27 Thread Antonios Motakis
will reside. This will allow us to implement support for also discovering AMBA devices and their resources, but still reuse a large part of the VFIO_PLATFORM implementation. Signed-off-by: Antonios Motakis --- drivers/vfio/platform/vfio_platform_common.c | 121 ++ drivers

[REPORT PATCH] driver core: amba: add device binding path 'driver_override'

2014-11-27 Thread Antonios Motakis
-pci-introduce-new-device-binding-path-using-pci_dev-driver_override.html [2] https://www.redhat.com/archives/libvir-list/2014-April/msg00382.html Signed-off-by: Antonios Motakis Reviewed-by: Kim Phillips --- Documentation/ABI/testing/sysfs-bus-amba | 20 ++ drivers/amba/bus.c

[PATCH v3 5/6] vfio: type1: replace vfio_domains_have_iommu_cache with generic function

2014-11-27 Thread Antonios Motakis
Replace the function vfio_domains_have_iommu_cache() with a more generic function vfio_domains_have_iommu_cap() which allows to check all domains of an vfio_iommu structure for a given cached capability. Signed-off-by: Antonios Motakis --- drivers/vfio/vfio_iommu_type1.c | 37

[PATCH v3 6/6] vfio: type1: implement the VFIO_DMA_MAP_FLAG_NOEXEC flag

2014-11-27 Thread Antonios Motakis
flag has been set. The flag can be used only if all IOMMU domains behind the container support the IOMMU_NOEXEC flag. Also, if any mappings are created with the flag, any new domains with devices will have to support it as well. Signed-off-by: Antonios Motakis --- drivers/vfio/vfio_iommu_type1.c

[PATCH v3 2/6] vfio: type1: support for ARM SMMUs

2014-11-27 Thread Antonios Motakis
This allows to make use of the VFIO_IOMMU_TYPE1 driver with devices behind an IOMMU on ARM platforms. The driver can then be used with an Exynos SMMU, or ARM SMMU driver. Signed-off-by: Antonios Motakis --- drivers/vfio/Kconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a

[PATCH v3 4/6] vfio: type1: replace domain wide protection flags with supported capabilities

2014-11-27 Thread Antonios Motakis
applying the IOMMU_CACHE protection flag when doing the actual DMA mappings. This will allow us to reuse the behavior for IOMMU_CAP_NOEXEC, which we also want to keep track of, but without applying it to all domains that support it unless the user explicitly requests it. Signed-off-by: Antonios

[PATCH v3 3/6] vfio: introduce the VFIO_DMA_MAP_FLAG_NOEXEC flag

2014-11-27 Thread Antonios Motakis
the container used. Signed-off-by: Antonios Motakis --- include/uapi/linux/vfio.h | 6 ++ 1 file changed, 6 insertions(+) diff --git a/include/uapi/linux/vfio.h b/include/uapi/linux/vfio.h index 59d516f..9ade02b 100644 --- a/include/uapi/linux/vfio.h +++ b/include/uapi/linux/vfio.h @@ -31,6

[PATCH v3 1/6] vfio: implement iommu driver capabilities with an enum

2014-11-27 Thread Antonios Motakis
Currently a VFIO driver's IOMMU capabilities are encoded as a series of numerical defines. Replace this with an enum for future maintainability. Signed-off-by: Antonios Motakis --- include/uapi/linux/vfio.h | 24 +++- 1 file changed, 11 insertions(+), 13 deletions(-)

Re: [PATCH v9 07/19] vfio/platform: return info for device memory mapped IO regions

2014-11-24 Thread Antonios Motakis
On Thu, Nov 20, 2014 at 3:11 PM, Antonios Motakis wrote: > On Wed, Nov 12, 2014 at 11:58 AM, Eric Auger wrote: >> On 10/27/2014 07:07 PM, Antonios Motakis wrote: >>> This patch enables the IOCTLs VFIO_DEVICE_GET_REGION_INFO ioctl call, >>> which allows the user to lea

Re: [PATCH v9 12/19] vfio/platform: trigger an interrupt via eventfd

2014-11-20 Thread Antonios Motakis
On Wed, Nov 12, 2014 at 3:22 PM, Eric Auger wrote: > On 10/31/2014 08:36 PM, Alex Williamson wrote: >> On Mon, 2014-10-27 at 19:07 +0100, Antonios Motakis wrote: >>> This patch allows to set an eventfd for a patform device's interrupt, > platform device (typo) Ack. &

Re: [PATCH v9 08/19] vfio/platform: read and write support for the device fd

2014-11-20 Thread Antonios Motakis
On Wed, Nov 12, 2014 at 4:46 PM, Eric Auger wrote: > On 10/27/2014 07:07 PM, Antonios Motakis wrote: >> VFIO returns a file descriptor which we can use to manipulate the memory >> regions of the device. Usually, the user will mmap memory regions that are >> addressable on pag

Re: [PATCH v9 07/19] vfio/platform: return info for device memory mapped IO regions

2014-11-20 Thread Antonios Motakis
On Wed, Nov 12, 2014 at 11:58 AM, Eric Auger wrote: > On 10/27/2014 07:07 PM, Antonios Motakis wrote: >> This patch enables the IOCTLs VFIO_DEVICE_GET_REGION_INFO ioctl call, >> which allows the user to learn about the available MMIO resources of >> a device. >> >>

Re: [PATCH v9 06/19] vfio/platform: return info for bound device

2014-11-20 Thread Antonios Motakis
On Wed, Nov 12, 2014 at 5:36 PM, Alex Williamson wrote: > On Wed, 2014-11-12 at 11:32 +0100, Eric Auger wrote: >> On 10/27/2014 07:07 PM, Antonios Motakis wrote: >> > A VFIO userspace driver will start by opening the VFIO device >> > that corresponds to an IOMMU gr

Re: [PATCH v9 01/19] vfio/platform: initial skeleton of VFIO support for platform devices

2014-11-20 Thread Antonios Motakis
On Wed, Nov 12, 2014 at 5:49 PM, Alex Williamson wrote: > > On Wed, 2014-11-12 at 11:05 +0100, Eric Auger wrote: > > Hi Antonios, > > > > On 10/27/2014 07:07 PM, Antonios Motakis wrote: > > > This patch forms the common skeleton code for platform devices support &

Re: [PATCH v9 03/19] vfio: platform: add the VFIO PLATFORM module to Kconfig

2014-11-20 Thread Antonios Motakis
On Thu, Nov 13, 2014 at 9:05 AM, Hongbo Zhang wrote: > On 12 November 2014 17:57, Antonios Motakis > wrote: >> Hello Hongbo, >> >> On Wed, Nov 12, 2014 at 10:52 AM, Hongbo Zhang >> wrote: >>> On 28 October 2014 02:07, Antonios Motakis >>> wr

Re: [PATCH v9 03/19] vfio: platform: add the VFIO PLATFORM module to Kconfig

2014-11-12 Thread Antonios Motakis
Hello Hongbo, On Wed, Nov 12, 2014 at 10:52 AM, Hongbo Zhang wrote: > On 28 October 2014 02:07, Antonios Motakis > wrote: >> >> Enable building the VFIO PLATFORM driver that allows to use Linux platform >> devices with VFIO. >> >> Signed-off-by: Antonios Mota

Re: [PATCH v9 13/19] vfio/platform: support for level sensitive interrupts

2014-11-05 Thread Antonios Motakis
On Fri, Oct 31, 2014 at 8:36 PM, Alex Williamson wrote: > On Mon, 2014-10-27 at 19:07 +0100, Antonios Motakis wrote: >> Level sensitive interrupts are exposed as maskable and automasked >> interrupts and are masked and disabled automatically when they fire. >> >> Sign

Re: [PATCH v9 12/19] vfio/platform: trigger an interrupt via eventfd

2014-11-05 Thread Antonios Motakis
On Fri, Oct 31, 2014 at 8:36 PM, Alex Williamson wrote: > On Mon, 2014-10-27 at 19:07 +0100, Antonios Motakis wrote: >> This patch allows to set an eventfd for a patform device's interrupt, >> and also to trigger the interrupt eventfd from userspace for testing. >> Leve

Re: [PATCH v9 15/19] vfio: add local lock in virqfd instead of depending on VFIO PCI

2014-11-05 Thread Antonios Motakis
On Fri, Oct 31, 2014 at 8:43 PM, Alex Williamson wrote: > On Mon, 2014-10-27 at 19:08 +0100, Antonios Motakis wrote: >> Virqfd just needs to keep accesses to any struct *virqfd safe, but this >> comes into play only when creating or destroying eventfds, so sharing >> the s

Re: [PATCH v9 10/19] vfio/platform: return IRQ info

2014-11-05 Thread Antonios Motakis
On Fri, Oct 31, 2014 at 8:11 PM, Alex Williamson wrote: > On Mon, 2014-10-27 at 19:07 +0100, Antonios Motakis wrote: >> Return information for the interrupts exposed by the device. >> This patch extends VFIO_DEVICE_GET_INFO with the number of IRQs >> and enables VFI

Re: [PATCH v9 07/19] vfio/platform: return info for device memory mapped IO regions

2014-11-05 Thread Antonios Motakis
On Fri, Oct 31, 2014 at 7:58 PM, Alex Williamson wrote: > On Mon, 2014-10-27 at 19:07 +0100, Antonios Motakis wrote: >> This patch enables the IOCTLs VFIO_DEVICE_GET_REGION_INFO ioctl call, >> which allows the user to learn about the available MMIO resources of >> a device

Re: [PATCH v9 04/19] vfio: amba: VFIO support for AMBA devices

2014-11-05 Thread Antonios Motakis
On Fri, Oct 31, 2014 at 7:40 PM, Alex Williamson wrote: > On Mon, 2014-10-27 at 19:07 +0100, Antonios Motakis wrote: >> Add support for discovering AMBA devices with VFIO and handle them >> similarly to Linux platform devices. >> >> Signed-off-by: Antonios Motak

Re: [PATCH v2 1/6] vfio: implement iommu driver capabilities with an enum

2014-11-05 Thread Antonios Motakis
On Fri, Oct 31, 2014 at 9:04 PM, Alex Williamson wrote: > > On Mon, 2014-10-27 at 19:05 +0100, Antonios Motakis wrote: > > Currently a VFIO driver's IOMMU capabilities are encoded as a series of > > numerical defines. Replace this with an enum for future maintainability

Re: [PATCH v9 17/19] vfio: virqfd: add vfio_ prefix to virqfd_enable and virqfd_disable

2014-10-31 Thread Antonios Motakis
On Mon, Oct 27, 2014 at 9:12 PM, Bjorn Helgaas wrote: > On Mon, Oct 27, 2014 at 12:08 PM, Antonios Motakis > wrote: >> The virqfd_enable and virqfd_disable functions are now global. Add the >> vfio_ prefix to those functions. > > Wouldn't it be better to change

Re: [PATCH v9 14/19] vfio: move eventfd support code for VFIO_PCI to a separate file

2014-10-31 Thread Antonios Motakis
On Mon, Oct 27, 2014 at 8:16 PM, Bjorn Helgaas wrote: > Hi Antonios, > > On Mon, Oct 27, 2014 at 12:07 PM, Antonios Motakis > wrote: >> The virqfd functionality that is used by VFIO_PCI to implement interrupt >> masking and unmasking via an eventfd, is generic enough

[PATCH v9 14/19] vfio: move eventfd support code for VFIO_PCI to a separate file

2014-10-27 Thread Antonios Motakis
process. Signed-off-by: Antonios Motakis --- drivers/vfio/Makefile | 4 +- drivers/vfio/pci/vfio_pci_intrs.c | 213 --- drivers/vfio/pci/vfio_pci_private.h | 3 - drivers/vfio/virqfd.c | 214

[PATCH v9 05/19] vfio: amba: add the VFIO for AMBA devices module to Kconfig

2014-10-27 Thread Antonios Motakis
Enable building the VFIO AMBA driver. VFIO_AMBA depends on VFIO_PLATFORM, since it is sharing a portion of the code, and it is essentially implemented as a platform device whose resources are discovered via AMBA specific APIs in the kernel. Signed-off-by: Antonios Motakis --- drivers/vfio

[PATCH v9 18/19] vfio: initialize the virqfd workqueue in VFIO generic code

2014-10-27 Thread Antonios Motakis
Now we have finally completely decoupled virqfd from VFIO_PCI. We can initialize it from the VFIO generic code, in order to safely use it from multiple independent VFIO bus drivers. Signed-off-by: Antonios Motakis --- drivers/vfio/pci/vfio_pci.c | 8 drivers/vfio/vfio.c | 8

[PATCH v9 17/19] vfio: virqfd: add vfio_ prefix to virqfd_enable and virqfd_disable

2014-10-27 Thread Antonios Motakis
The virqfd_enable and virqfd_disable functions are now global. Add the vfio_ prefix to those functions. Signed-off-by: Antonios Motakis --- drivers/vfio/pci/vfio_pci_intrs.c | 18 +- drivers/vfio/virqfd.c | 14 +++--- include/linux/vfio.h | 10

[PATCH v9 19/19] vfio/platform: implement IRQ masking/unmasking via an eventfd

2014-10-27 Thread Antonios Motakis
With this patch the VFIO user will be able to set an eventfd that can be used in order to mask and unmask IRQs of platform devices. Signed-off-by: Antonios Motakis --- drivers/vfio/platform/vfio_platform_irq.c | 47 --- drivers/vfio/platform/vfio_platform_private.h

[PATCH v9 16/19] vfio: pass an opaque pointer on virqfd initialization

2014-10-27 Thread Antonios Motakis
VFIO_PCI passes the VFIO device structure *vdev via eventfd to the handler that implements masking/unmasking of IRQs via an eventfd. We can replace it in the virqfd infrastructure with an opaque type so we can make use of the mechanism from other VFIO bus drivers. Signed-off-by: Antonios Motakis

[PATCH v9 13/19] vfio/platform: support for level sensitive interrupts

2014-10-27 Thread Antonios Motakis
Level sensitive interrupts are exposed as maskable and automasked interrupts and are masked and disabled automatically when they fire. Signed-off-by: Antonios Motakis --- drivers/vfio/platform/vfio_platform_irq.c | 102 +- drivers/vfio/platform

[PATCH v9 15/19] vfio: add local lock in virqfd instead of depending on VFIO PCI

2014-10-27 Thread Antonios Motakis
Virqfd just needs to keep accesses to any struct *virqfd safe, but this comes into play only when creating or destroying eventfds, so sharing the same spinlock with the VFIO bus driver is not necessary. Signed-off-by: Antonios Motakis --- drivers/vfio/pci/vfio_pci_intrs.c | 10

[PATCH v9 04/19] vfio: amba: VFIO support for AMBA devices

2014-10-27 Thread Antonios Motakis
Add support for discovering AMBA devices with VFIO and handle them similarly to Linux platform devices. Signed-off-by: Antonios Motakis --- drivers/vfio/platform/vfio_amba.c | 116 ++ include/uapi/linux/vfio.h | 1 + 2 files changed, 117 insertions

[PATCH v9 08/19] vfio/platform: read and write support for the device fd

2014-10-27 Thread Antonios Motakis
. For this reason we also need allow to read and write to the memory regions via the file descriptor. Implement this funcionality only for MMIO regions of platform devices; PIO regions are not being handled at this point. Signed-off-by: Antonios Motakis --- drivers/vfio/platform

[PATCH v9 11/19] vfio/platform: initial interrupts support code

2014-10-27 Thread Antonios Motakis
This patch is a skeleton for the VFIO_DEVICE_SET_IRQS IOCTL, around which most IRQ functionality is implemented in VFIO. Signed-off-by: Antonios Motakis --- drivers/vfio/platform/vfio_platform_common.c | 52 +++-- drivers/vfio/platform/vfio_platform_irq.c | 56

[PATCH v9 06/19] vfio/platform: return info for bound device

2014-10-27 Thread Antonios Motakis
-off-by: Antonios Motakis --- drivers/vfio/platform/vfio_platform_common.c | 23 --- 1 file changed, 20 insertions(+), 3 deletions(-) diff --git a/drivers/vfio/platform/vfio_platform_common.c b/drivers/vfio/platform/vfio_platform_common.c index e0fdbc8..cb20526 100644 --- a

[PATCH v9 01/19] vfio/platform: initial skeleton of VFIO support for platform devices

2014-10-27 Thread Antonios Motakis
will reside. This will allow us to implement support for also discovering AMBA devices and their resources, but still reuse a large part of the VFIO_PLATFORM implementation. Signed-off-by: Antonios Motakis --- drivers/vfio/platform/vfio_platform_common.c | 126 ++ drivers

[PATCH v9 10/19] vfio/platform: return IRQ info

2014-10-27 Thread Antonios Motakis
Return information for the interrupts exposed by the device. This patch extends VFIO_DEVICE_GET_INFO with the number of IRQs and enables VFIO_DEVICE_GET_IRQ_INFO. Signed-off-by: Antonios Motakis --- drivers/vfio/platform/Makefile| 2 +- drivers/vfio/platform

[PATCH v9 12/19] vfio/platform: trigger an interrupt via eventfd

2014-10-27 Thread Antonios Motakis
d are implemented here using a simple and efficient IRQ handler. Signed-off-by: Antonios Motakis --- drivers/vfio/platform/vfio_platform_irq.c | 93 ++- drivers/vfio/platform/vfio_platform_private.h | 2 + 2 files changed, 93 insertions(+), 2 deletions(-) diff --git a/drivers

[PATCH v9 09/19] vfio/platform: support MMAP of MMIO regions

2014-10-27 Thread Antonios Motakis
Allow to memory map the MMIO regions of the device so userspace can directly access them. PIO regions are not being handled at this point. Signed-off-by: Antonios Motakis --- drivers/vfio/platform/vfio_platform_common.c | 65 1 file changed, 65 insertions(+) diff

[PATCH v9 02/19] vfio: platform: probe to devices on the platform bus

2014-10-27 Thread Antonios Motakis
Driver to bind to Linux platform devices, and callbacks to discover their resources to be used by the main VFIO PLATFORM code. Signed-off-by: Antonios Motakis --- drivers/vfio/platform/vfio_platform.c | 114 ++ include/uapi/linux/vfio.h | 1 + 2

[PATCH v9 03/19] vfio: platform: add the VFIO PLATFORM module to Kconfig

2014-10-27 Thread Antonios Motakis
Enable building the VFIO PLATFORM driver that allows to use Linux platform devices with VFIO. Signed-off-by: Antonios Motakis --- drivers/vfio/Kconfig | 1 + drivers/vfio/Makefile | 1 + drivers/vfio/platform/Kconfig | 9 + drivers/vfio/platform/Makefile | 4 4

[PATCH v9 07/19] vfio/platform: return info for device memory mapped IO regions

2014-10-27 Thread Antonios Motakis
This patch enables the IOCTLs VFIO_DEVICE_GET_REGION_INFO ioctl call, which allows the user to learn about the available MMIO resources of a device. Signed-off-by: Antonios Motakis --- drivers/vfio/platform/vfio_platform_common.c | 110 +- drivers/vfio/platform

[PATCH v2 4/6] vfio: type1: replace domain wide protection flags with supported capabilities

2014-10-27 Thread Antonios Motakis
applying the IOMMU_CACHE protection flag when doing the actual DMA mappings. This will allow us to reuse the behavior for IOMMU_CAP_NOEXEC, which we also want to keep track of, but without applying it to all domains that support it unless the user explicitly requests it. Signed-off-by: Antonios

[PATCH v2 6/6] vfio: type1: implement the VFIO_DMA_MAP_FLAG_NOEXEC flag

2014-10-27 Thread Antonios Motakis
flag has been set. The flag can be used only if all IOMMU domains behind the container support the IOMMU_NOEXEC flag. Also, if any mappings are created with the flag, any new domains with devices will have to support it as well. Signed-off-by: Antonios Motakis --- drivers/vfio/vfio_iommu_type1.c

[PATCH v2 1/6] vfio: implement iommu driver capabilities with an enum

2014-10-27 Thread Antonios Motakis
Currently a VFIO driver's IOMMU capabilities are encoded as a series of numerical defines. Replace this with an enum for future maintainability. Signed-off-by: Antonios Motakis --- include/uapi/linux/vfio.h | 21 ++--- 1 file changed, 10 insertions(+), 11 deletions(-)

[PATCH v2 3/6] vfio: introduce the VFIO_DMA_MAP_FLAG_NOEXEC flag

2014-10-27 Thread Antonios Motakis
the container used. Signed-off-by: Antonios Motakis --- include/uapi/linux/vfio.h | 6 ++ 1 file changed, 6 insertions(+) diff --git a/include/uapi/linux/vfio.h b/include/uapi/linux/vfio.h index 1e39842..06d66c9 100644 --- a/include/uapi/linux/vfio.h +++ b/include/uapi/linux/vfio.h @@ -30,6

[PATCH v2 5/6] vfio: type1: replace vfio_domains_have_iommu_cache with generic function

2014-10-27 Thread Antonios Motakis
Replace the function vfio_domains_have_iommu_cache() with a more generic function vfio_domains_have_iommu_cap() which allows to check all domains of an vfio_iommu structure for a given cached capability. Signed-off-by: Antonios Motakis --- drivers/vfio/vfio_iommu_type1.c | 37

[PATCH v2 2/6] vfio: type1: support for platform bus devices on ARM

2014-10-27 Thread Antonios Motakis
This allows to make use of the VFIO_IOMMU_TYPE1 driver with platform devices on ARM. The driver can then be used with an Exynos SMMU, or ARM SMMU driver. Signed-off-by: Antonios Motakis --- drivers/vfio/Kconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/vfio

Re: [PATCH v8 07/18] vfio/platform: return info for device memory mapped IO regions

2014-10-22 Thread Antonios Motakis
On Wed, Oct 22, 2014 at 6:46 PM, Alex Williamson wrote: > On Wed, 2014-10-22 at 15:54 +0200, Antonios Motakis wrote: >> On Tue, Oct 21, 2014 at 6:34 PM, Alex Williamson >> wrote: >> > On Mon, 2014-10-13 at 15:10 +0200, Antonios Motakis wrote: >> &g

Re: [PATCH 3/5] vfio: type1: replace domain wide protection flags with supported capabilities

2014-10-22 Thread Antonios Motakis
On Wed, Oct 22, 2014 at 11:08 AM, Eric Auger wrote: > On 10/13/2014 03:09 PM, Antonios Motakis wrote: >> VFIO_IOMMU_TYPE1 keeps track for each domain it knows a list of protection >> flags it always applies to all mappings in the domain. This is used for >>

  1   2   3   >