Go to file
Matan Azrad edc6391e45 vdpa/mlx5: control completion queue event mode
The CQ polling is necessary in order to manage guest notifications when
the guest doesn't work with poll mode (callfd != -1).

The CQ polling scheduling method can affect the host CPU utilization and
the traffic bandwidth.

Define 3 modes to control the CQ polling scheduling:

1. A timer thread which automatically adjusts its delays to the coming
   traffic rate.
2. A timer thread with fixed delay time.
3. Interrupts: Each CQE burst arms the CQ in order to get an interrupt
   event in the next traffic burst.

When traffic becomes off, mode 3 is taken automatically.

The interrupt management takes a lot of CPU cycles but forward traffic
event to the guest very fast.

Timer thread save the interrupt overhead but may add delay for the guest
notification.

Add device arguments to control on the mode.

Signed-off-by: Matan Azrad <matan@mellanox.com>
Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com>
2020-06-30 14:52:30 +02:00
.ci ci: reduce examples in static builds 2020-04-17 23:34:08 +02:00
app app/flow-perf: use macro for cache alignment 2020-06-30 11:57:46 +02:00
buildtools build: replace meson OS detection with variable 2020-06-30 15:29:59 +02:00
config net/i40e: support aarch32 2020-06-30 14:52:30 +02:00
devtools devtools: add Windows cross-build test with MinGW 2020-06-30 01:18:35 +02:00
doc vdpa/mlx5: control completion queue event mode 2020-06-30 14:52:30 +02:00
drivers vdpa/mlx5: control completion queue event mode 2020-06-30 14:52:30 +02:00
examples examples/vdpa: remove useless device count 2020-06-30 14:52:30 +02:00
kernel kernel/linux: error out on module build failure 2020-05-19 17:59:57 +02:00
lib vhost: split vDPA header file 2020-06-30 14:52:30 +02:00
license eal: move OS-specific sub-directories 2020-03-31 13:08:55 +02:00
mk mk: add a paused deprecation warning before each build 2020-06-29 16:37:22 +02:00
usertools usertools: fix telemetry user socket path 2020-06-25 01:10:12 +02:00
.editorconfig devtools: add EditorConfig file 2020-02-22 21:05:22 +01:00
.gitattributes improve git diff 2016-11-13 15:25:12 +01:00
.gitignore doc: add feature matrix table for bbdev 2020-04-19 22:34:26 +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 test: move to app directory 2019-02-26 15:29:27 +01:00
MAINTAINERS build: generate version map file for MinGW 2020-06-30 00:02:53 +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: add arch-specific header path to global includes 2020-05-10 23:45:02 +02:00
README license: introduce SPDX identifiers 2018-01-04 22:41:38 +01:00
VERSION version: 20.08-rc0 2020-05-27 11:37:33 +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