Go to file
Ophir Munk 54b20f94cd net/mlx4: fix premature disabling of interrupt
RXQ interrupts under Linux are based on the epoll mechanism. An
expected order of operations is as follows:
1. Call rte_eth_dev_rx_intr_enable(), to arm the CQ for receiving events
on data input.
2. Block on rte_epoll_wait() with an array of file descriptors
representing the CQ events. Upon data arrival the kernel will signal an
input event on the corresponding CQ fd.
3. Call rte_eth_dev_rx_intr_disable() after the event was received and
continue in polling mode. The mlx4 implementation of
rte_eth_dev_rx_intr_disable() is to get the CQ event and ack it.

In practice applications may wake up from rte_epoll_wait() due to
timeout with no event to ack but still call
rte_eth_dev_rx_intr_disable() unconditionally.  In such cases the call
should return EAGAIN (since the file descriptors are non-blocked), as
opposed to EINVAL which indicates a real failure.  In case of EAGAIN the
PMD should not warn on "unable to disable interrupt on rx queue".

Signed-off-by: Ophir Munk <ophirmu@mellanox.com>
Acked-by: Raslan Darawsheh <rasland@mellanox.com>
2020-07-30 00:41:23 +02:00
.ci ci: reduce examples in static builds 2020-04-17 23:34:08 +02:00
app app/regex: add RegEx test application 2020-07-30 09:13:52 +02:00
buildtools build: remove special versioning for non stable libraries 2020-07-07 12:48:25 +02:00
config crypto/armv8: remove debug option 2020-07-28 22:09:22 +02:00
devtools add python2 deprecation notice 2020-07-21 22:58:18 +02:00
doc doc: update release notes for hns3 driver 2020-07-30 00:41:23 +02:00
drivers net/mlx4: fix premature disabling of interrupt 2020-07-30 00:41:23 +02:00
examples examples/l3fwd-power: fix updating lcore parameters 2020-07-22 01:44:37 +02:00
kernel kernel/linux: error out on module build failure 2020-05-19 17:59:57 +02:00
lib eal: introduce macro for bit definition 2020-07-28 18:27:46 +02:00
license eal: move OS-specific sub-directories 2020-03-31 13:08:55 +02:00
mk regex/mlx5: support probing 2020-07-21 19:04:05 +02:00
usertools add python2 deprecation notice 2020-07-21 22:58:18 +02:00
.editorconfig devtools: add EditorConfig file 2020-02-22 21:05:22 +01:00
.gitattributes
.gitignore regex/mlx5: introduce driver for BlueField 2 2020-07-21 19:04:05 +02:00
.travis.yml version: 20.08-rc0 2020-05-27 11:37:33 +02:00
ABI_VERSION version: 20.08-rc0 2020-05-27 11:37:33 +02:00
GNUmakefile
MAINTAINERS app/regex: add RegEx test application 2020-07-30 09:13:52 +02:00
Makefile remove blank lines at end of file 2019-11-26 00:12:08 +01:00
meson_options.txt trace: introduce new subsystem 2020-04-23 15:39:06 +02:00
meson.build build: check AVX512 rather than binutils version 2020-07-05 21:32:40 +02:00
README
VERSION version: 20.08-rc2 2020-07-22 02:45:20 +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