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

2015-08-31 Thread Antonios Motakis
rd. 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 transparent to the user. Thanks, I wonder if it makes sense

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

2015-08-31 Thread Antonios Motakis
oggle any of the interrupt info details 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 transparent to the user. T

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), wh

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

2015-08-26 Thread Antonios Motakis
| 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 ++ > drivers/clocksource/arm_a

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

2015-08-26 Thread Antonios Motakis
++ drivers/clocksource/arm_arch_timer.c | 96 + 18 files changed, 638 insertions(+), 229 deletions(-) create mode 100644 arch/arm64/kvm/vhe-macros.h -- Antonios Motakis Virtualization Engineer Huawei Technologies Duesseldorf GmbH European Research Center Riesstrasse 25, 80992

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 Extension (VHE for short), which enables simpler support of Type-2

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 simpler support of Type-2 hypervisors. This extension allows

[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
and 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/drivers

[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

[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

[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 a.mota...@virtualopensystems.com --- drivers/vfio/platform/vfio_platform_common.c | 121

[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 a.mota...@virtualopensystems.com --- drivers/vfio/Kconfig | 1 + drivers/vfio/Makefile | 1 + drivers/vfio/platform/Kconfig | 9 + drivers

[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 a.mota...@virtualopensystems.com --- drivers/vfio/platform/vfio_platform.c | 103 ++ include/uapi/linux

[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 a.mota...@virtualopensystems.com --- drivers/vfio/platform/vfio_platform_common.c | 65 1 file

[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 a.mota

[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 a.mota...@virtualopensystems.com --- drivers/vfio/platform/vfio_platform_common.c | 106

[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 a.mota...@virtualopensystems.com --- drivers/vfio/platform/vfio_amba.c | 115 ++ include/uapi/linux/vfio.h | 1

[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 a.mota...@virtualopensystems.com --- drivers/vfio/pci

[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 a.mota...@virtualopensystems.com --- drivers/vfio/Makefile | 4 +++- drivers

[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 a.mota

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

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

[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 a.mota

[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 a.mota...@virtualopensystems.com --- drivers/vfio/platform/vfio_platform_irq.c | 99 ++- drivers/vfio

[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 a.mota...@virtualopensystems.com --- drivers/vfio/platform/vfio_platform_common.c | 52 +-- drivers/vfio/platform

[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 a.mota...@virtualopensystems.com --- drivers/vfio/platform/Makefile| 2 +- drivers

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

2015-01-06 Thread Antonios Motakis
-off-by: Antonios Motakis a.mota...@virtualopensystems.com --- 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

[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 a.mota...@virtualopensystems.com --- drivers/vfio/pci/vfio_pci.c | 6

[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 a.mota

[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 a.mota...@virtualopensystems.com --- drivers/vfio/platform/vfio_platform_irq.c | 47 --- drivers/vfio

[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

[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

[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 a.mota...@virtualopensystems.com --- drivers/vfio/platform/properties.c | 62

[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 a.mota...@virtualopensystems.com --- drivers/vfio/platform/Makefile| 3 +- drivers/vfio/platform/properties.c| 61

[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 a.mota...@virtualopensystems.com --- drivers/vfio

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

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 a.mota...@virtualopensystems.com wrote: As already

[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 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 a.mota...@virtualopensystems.com --- drivers/vfio/platform/vfio_amba.c | 115 ++ include/uapi/linux/vfio.h | 1

[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
and 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/vfio

[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

[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

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

2014-11-27 Thread Antonios Motakis
, and 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
of 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(-) diff

[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 a.mota...@virtualopensystems.com --- include/uapi/linux/vfio.h | 24 +++- 1 file changed, 11

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

2014-11-27 Thread Antonios Motakis
of the container used. Signed-off-by: Antonios Motakis a.mota...@virtualopensystems.com --- 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

[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 a.mota...@virtualopensystems.com

[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 a.mota...@virtualopensystems.com --- drivers/vfio/Kconfig | 2 +- 1 file changed, 1 insertion

[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 a.mota...@virtualopensystems.com --- drivers/vfio

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

2014-11-27 Thread Antonios Motakis
, and 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

[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 a.mota...@virtualopensystems.com Reviewed-by: Kim Phillips kim.phill...@freescale.com --- Documentation/ABI/testing/sysfs

[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 a.mota...@virtualopensystems.com --- drivers/vfio/platform/vfio_platform.c | 103 ++ include/uapi/linux

[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 a.mota...@virtualopensystems.com --- drivers/vfio/platform/vfio_platform_common.c | 121

[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 a.mota...@virtualopensystems.com --- drivers/vfio/Kconfig | 1 + drivers/vfio/Makefile | 1 + drivers/vfio/platform/Kconfig | 9 + drivers

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

2014-11-27 Thread Antonios Motakis
-off-by: Antonios Motakis a.mota...@virtualopensystems.com --- 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

[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 a.mota

[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 a.mota...@virtualopensystems.com --- drivers/vfio/platform/vfio_amba.c | 110 ++ include/uapi/linux/vfio.h | 1

[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 a.mota

[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 a.mota...@virtualopensystems.com --- drivers/vfio/platform/vfio_platform_common.c | 106

  1   2   3   4   5   6   >