numam-dpdk/lib
Nithin Dabilpuram 33543fb3b6 vfio: revert interrupt eventfd setup at probe
This reverts commit 89aac60e0b.
"vfio: fix interrupts race condition"

The above mentioned commit moves the interrupt's eventfd setup
to probe time but only enables one interrupt for all types of
interrupt handles i.e VFIO_MSI, VFIO_LEGACY, VFIO_MSIX, UIO.
It works fine with default case but breaks below cases specifically
for MSIX based interrupt handles.

* Applications like l3fwd-power that request rxq interrupts
  while ethdev setup.
* Drivers that need > 1 MSIx interrupts to be configured for
  functionality to work.

VFIO PCI for MSIx expects all the possible vectors to be setup up
when using VFIO_IRQ_SET_ACTION_TRIGGER so that they can be
allocated from kernel pci subsystem. Only way to increase the number
of vectors later is first free all by using VFIO_IRQ_SET_DATA_NONE
with action trigger and then enable new vector count.

Above commit changes the behavior of rte_intr_[enable|disable] to
only mask and unmask unlike earlier behavior and thereby
breaking above two scenarios.

Fixes: 89aac60e0b ("vfio: fix interrupts race condition")
Cc: stable@dpdk.org

Signed-off-by: Nithin Dabilpuram <ndabilpuram@marvell.com>
Signed-off-by: Jerin Jacob <jerinj@marvell.com>
Tested-by: Stephen Hemminger <stephen@networkplumber.org>
Tested-by: Shahed Shaikh <shshaikh@marvell.com>
Tested-by: Lei Yao <lei.a.yao@intel.com>
Acked-by: David Marchand <david.marchand@redhat.com>
2019-07-23 12:00:14 +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 vfio: revert interrupt eventfd setup at probe 2019-07-23 12:00:14 +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