numam-dpdk/lib
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
..
librte_acl eal: hide shared memory config 2019-07-06 10:32:34 +02:00
librte_bbdev bbdev: extend API for 5G FEC 2019-07-05 15:28:14 +02:00
librte_bitratestats bitrate: fix unchecked return value 2019-04-23 00:19:06 +02:00
librte_bpf bpf: fix validate for function return value 2019-07-04 10:33:13 +02:00
librte_cfgfile cfgfile: use calloc 2019-07-19 00:48:43 +02:00
librte_cmdline cmdline: use new ethernet address parser 2019-07-08 21:26:52 +02:00
librte_compressdev enforce experimental tag at beginning of declarations 2019-06-29 19:04:48 +02:00
librte_cryptodev cryptodev: remove RSA PKCS1 BT0 padding 2019-07-19 14:17:11 +02:00
librte_distributor distributor: fix check of workers number 2019-07-17 22:35:19 +02:00
librte_eal eal: add ack interrupt API 2019-07-23 12:00:22 +02:00
librte_efd eal: hide shared memory config 2019-07-06 10:32:34 +02:00
librte_ethdev ethdev: use new ethernet parsing function 2019-07-08 21:26:52 +02:00
librte_eventdev eventdev: fix error sign 2019-07-07 13:23:57 +02:00
librte_flow_classify flow_classify: fix out-of-bounds access 2019-07-10 23:41:25 +02:00
librte_gro net: move TCP flags from ethdev header 2019-07-03 12:57:30 +02:00
librte_gso net: add rte prefix to UDP structure 2019-05-24 13:34:46 +02:00
librte_hash hash: flush rings instead of dequeuing one by one 2019-07-17 19:52:37 +02:00
librte_ip_frag ip_frag: remove remaining IP checkum offload flag 2019-07-16 13:23:04 +02:00
librte_ipsec ipsec: support header construction 2019-07-05 15:28:14 +02:00
librte_jobstats replace snprintf with strlcpy 2019-04-04 22:46:05 +02:00
librte_kni kni: fix kernel crash with multi-segments 2019-07-15 22:48:20 +02:00
librte_kvargs remove experimental tags from all symbol definitions 2019-06-29 19:04:43 +02:00
librte_latencystats doc: fix spelling reported by aspell in comments 2019-05-03 00:38:14 +02:00
librte_lpm lpm: use atomic store to avoid partial update 2019-07-19 12:37:14 +02:00
librte_mbuf mbuf: clarify outer offsets for non-tunnel packets 2019-07-01 17:15:01 +02:00
librte_member eal: hide shared memory config 2019-07-06 10:32:34 +02:00
librte_mempool eal: hide shared memory config 2019-07-06 10:32:34 +02:00
librte_meter enforce experimental tag at beginning of declarations 2019-06-29 19:04:48 +02:00
librte_metrics metrics: add function to deinitialise library 2019-07-16 12:45:30 +02:00
librte_net net: speedup ethernet address comparison with bitops 2019-07-08 21:26:52 +02:00
librte_pci pci: fix parsing of address without function number 2018-11-13 17:59:42 +01:00
librte_pdump ipc: handle unsupported IPC in action register 2019-06-05 11:27:36 +02:00
librte_pipeline examples/ip_pipeline: add config flexibility to TM 2019-07-22 15:42:59 +02:00
librte_port net: add rte prefix to IP defines 2019-05-24 13:34:46 +02:00
librte_power lib: add reasons for components being disabled 2019-07-02 23:21:05 +02:00
librte_rawdev rawdev: allow devices to skip extra memory allocation 2019-07-04 09:33:59 +02:00
librte_rcu eal: hide shared memory config 2019-07-06 10:32:34 +02:00
librte_reorder eal: hide shared memory config 2019-07-06 10:32:34 +02:00
librte_ring ring: add reset function for flushing 2019-07-17 19:51:56 +02:00
librte_sched sched: remove redundant macros 2019-07-22 15:44:16 +02:00
librte_security ipsec: support header construction 2019-07-05 15:28:14 +02:00
librte_stack eal: add API to lock/unlock tailq list 2019-07-05 22:13:23 +02:00
librte_table table: fix crash in LPM IPv6 2019-07-04 23:44:58 +02:00
librte_telemetry telemetry: fix build with gcc 9 2019-07-04 18:48:04 +02:00
librte_timer timer: fix null access if not initialized 2019-07-18 23:14:53 +02:00
librte_vhost vhost: log virtio and vhost-user negotiated features 2019-07-08 21:26:52 +02:00
Makefile cfgfile: use log for error messages 2019-07-19 00:47:50 +02:00
meson.build cmdline: use new ethernet address parser 2019-07-08 21:26:52 +02:00