Go to file
David Marchand 89aac60e0b vfio: fix interrupts race condition
Populating the eventfd in rte_intr_enable in each request to vfio
triggers a reconfiguration of the interrupt handler on the kernel side.
The problem is that rte_intr_enable is often used to re-enable masked
interrupts from drivers interrupt handlers.

This reconfiguration leaves a window during which a device could send
an interrupt and then the kernel logs this (unsolicited from the kernel
point of view) interrupt:
[158764.159833] do_IRQ: 9.34 No irq handler for vector

VFIO api makes it possible to set the fd at setup time.
Make use of this and then we only need to ask for masking/unmasking
legacy interrupts and we have nothing to do for MSI/MSIX.

"rxtx" interrupts are left untouched but are most likely subject to the
same issue.

Reported-at: https://bugzilla.redhat.com/show_bug.cgi?id=1654824
Fixes: 5c782b3928 ("vfio: interrupts")
Cc: stable@dpdk.org

Signed-off-by: David Marchand <david.marchand@redhat.com>
Tested-by: Shahed Shaikh <shshaikh@marvell.com>
2019-07-10 18:53:47 +02:00
.ci ci: fix arm64 config filename 2019-03-30 00:01:35 +01:00
app app/testpmd: use new ethernet address parser 2019-07-08 21:26:52 +02:00
buildtools buildtools: filter out checked symbols for icc 2019-07-02 16:04:37 +02:00
config baseband/turbo_sw: extend for 5G 2019-07-05 15:28:14 +02:00
devtools devtools: pass custom options to checkpatch 2019-07-04 22:43:26 +02:00
doc doc: fix PDF build in octeontx2 guide 2019-07-10 18:53:47 +02:00
drivers vfio: fix interrupts race condition 2019-07-10 18:53:47 +02:00
examples examples/packet_ordering: add stats per worker thread 2019-07-08 16:33:06 +02:00
kernel kernel/linux: fix modules install path 2019-06-27 17:43:59 +02:00
lib vfio: fix interrupts race condition 2019-07-10 18:53:47 +02:00
license fix dpdk.org URLs 2018-11-26 20:19:24 +01:00
mk doc: add search engine for API 2019-07-08 22:13:20 +02:00
usertools raw/ntb: support Intel NTB 2019-07-05 12:50:19 +02:00
.gitattributes improve git diff 2016-11-13 15:25:12 +01:00
.gitignore doc: fix missing asymmetric crypto table 2019-04-18 16:01:28 +02:00
.travis.yml ci: add a distinguisher to the extra Travis builds 2019-04-17 13:56:23 +02:00
GNUmakefile test: move to app directory 2019-02-26 15:29:27 +01:00
MAINTAINERS test/mcslock: add MCS queued lock unit test 2019-07-08 10:57:14 +02:00
Makefile license: use SPDX tag in root makefile 2018-01-04 22:41:38 +01:00
meson_options.txt baseband/turbo_sw: support meson build 2019-07-05 15:28:14 +02:00
meson.build build: print list of disabled components 2019-07-02 23:20:26 +02:00
README license: introduce SPDX identifiers 2018-01-04 22:41:38 +01:00
VERSION version: 19.08-rc1 2019-07-08 23:04:41 +02:00

DPDK is a set of libraries and drivers for fast packet processing.
It supports many processor architectures and both FreeBSD and Linux.

The DPDK uses the Open Source BSD-3-Clause license for the core libraries
and drivers. The kernel components are GPL-2.0 licensed.

Please check the doc directory for release notes,
API documentation, and sample application information.

For questions and usage discussions, subscribe to: users@dpdk.org
Report bugs and issues to the development mailing list: dev@dpdk.org