numam-dpdk/lib/librte_eal
Nithin Dabilpuram a159730c2f eal: add ack interrupt API
Add new ack interrupt API to avoid using
VFIO_IRQ_SET_ACTION_TRIGGER(rte_intr_enable()) for
acking interrupt purpose for VFIO based interrupt handlers.
This implementation is specific to Linux.

Using rte_intr_enable() for acking interrupt has below issues

 * Time consuming to do for every interrupt received as it will
   free_irq() followed by request_irq() and all other initializations
 * A race condition because of a window between free_irq() and
   request_irq() with packet reception still on and device still
   enabled and would throw warning messages like below.
   [158764.159833] do_IRQ: 9.34 No irq handler for vector

In this patch, rte_intr_ack() is a no-op for VFIO_MSIX/VFIO_MSI interrupts
as they are edge triggered and kernel would not mask the interrupt before
delivering the event to userspace and we don't need to ack.

Signed-off-by: Nithin Dabilpuram <ndabilpuram@marvell.com>
Signed-off-by: Jerin Jacob <jerinj@marvell.com>
Tested-by: Shahed Shaikh <shshaikh@marvell.com>
Signed-off-by: David Marchand <david.marchand@redhat.com>
2019-07-23 12:00:22 +02:00
..
common eal: add ack interrupt API 2019-07-23 12:00:22 +02:00
freebsd eal: add ack interrupt API 2019-07-23 12:00:22 +02:00
linux eal: add ack interrupt API 2019-07-23 12:00:22 +02:00
windows/eal build: add workarounds for Windows helloworld 2019-04-03 01:21:31 +02:00
Makefile build/freebsd: rename macro BSDPAPP to FREEBSD 2019-03-12 23:01:14 +01:00
meson.build eal: hide shared memory config 2019-07-06 10:32:34 +02:00
rte_eal_exports.def build: add module definition files for Windows 2019-04-03 01:21:31 +02:00
rte_eal_version.map eal: add ack interrupt API 2019-07-23 12:00:22 +02:00