Go to file
David Marchand 5c307ba2a5 eal: register non-EAL threads as lcores
DPDK allows calling some part of its API from a non-EAL thread but this
has some limitations.
OVS (and other applications) has its own thread management but still
want to avoid such limitations by hacking RTE_PER_LCORE(_lcore_id) and
faking EAL threads potentially unknown of some DPDK component.

Introduce a new API to register non-EAL thread and associate them to a
free lcore with a new NON_EAL role.
This role denotes lcores that do not run DPDK mainloop and as such
prevents use of rte_eal_wait_lcore() and consorts.

Multiprocess is not supported as the need for cohabitation with this new
feature is unclear at the moment.

Signed-off-by: David Marchand <david.marchand@redhat.com>
Acked-by: Andrew Rybchenko <arybchenko@solarflare.com>
Acked-by: Thomas Monjalon <thomas@monjalon.net>
Acked-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
2020-07-08 14:41:05 +02:00
.ci ci: reduce examples in static builds 2020-04-17 23:34:08 +02:00
app eal: register non-EAL threads as lcores 2020-07-08 14:41:05 +02:00
buildtools build: remove special versioning for non stable libraries 2020-07-07 12:48:25 +02:00
config build: remove special versioning for non stable libraries 2020-07-07 12:48:25 +02:00
devtools build: remove special versioning for non stable libraries 2020-07-07 12:48:25 +02:00
doc eal: register non-EAL threads as lcores 2020-07-08 14:41:05 +02:00
drivers log: remove unneeded logtype declaration 2020-07-07 13:18:23 +02:00
examples examples/eventdev: fix 32-bit coremask 2020-06-29 18:37:52 +02:00
kernel kernel/linux: error out on module build failure 2020-05-19 17:59:57 +02:00
lib eal: register non-EAL threads as lcores 2020-07-08 14:41:05 +02:00
license eal: move OS-specific sub-directories 2020-03-31 13:08:55 +02:00
mk build: remove special versioning for non stable libraries 2020-07-07 12:48:25 +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 eal: register non-EAL threads as lcores 2020-07-08 14:41:05 +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 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