Go to file
Gage Eads e75bc77f98 mempool/stack: add lock-free stack mempool handler
This commit adds support for lock-free (linked list based) stack mempool
handler.

In mempool_perf_autotest the lock-based stack outperforms the
lock-free handler for certain lcore/alloc count/free count
combinations*, however:
- For applications with preemptible pthreads, a standard (lock-based)
  stack's worst-case performance (i.e. one thread being preempted while
  holding the spinlock) is much worse than the lock-free stack's.
- Using per-thread mempool caches will largely mitigate the performance
  difference.

*Test setup: x86_64 build with default config, dual-socket Xeon E5-2699 v4,
running on isolcpus cores with a tickless scheduler. The lock-based stack's
rate_persec was 0.6x-3.5x the lock-free stack's.

Signed-off-by: Gage Eads <gage.eads@intel.com>
Reviewed-by: Olivier Matz <olivier.matz@6wind.com>
2019-04-04 22:06:16 +02:00
.ci ci: fix arm64 config filename 2019-03-30 00:01:35 +01:00
app test/stack: check lock-free implementation 2019-04-04 22:06:16 +02:00
buildtools build: add workarounds for Windows helloworld 2019-04-03 01:21:31 +02:00
config stack: introduce stack library 2019-04-04 22:06:16 +02:00
devtools eal: remove exec-env directory 2019-04-02 21:49:35 +02:00
doc mempool/stack: add lock-free stack mempool handler 2019-04-04 22:06:16 +02:00
drivers mempool/stack: add lock-free stack mempool handler 2019-04-04 22:06:16 +02:00
examples examples/ipsec-secgw: fix test script 2019-04-02 16:50:24 +02:00
kernel eal/windows: introduce Windows support 2019-04-03 01:06:01 +02:00
lib stack: add C11 atomic implementation 2019-04-04 22:06:16 +02:00
license fix dpdk.org URLs 2018-11-26 20:19:24 +01:00
mk stack: introduce stack library 2019-04-04 22:06:16 +02:00
usertools usertools: add octeontx2 SSO and NPA PCIe devices 2019-03-27 01:24:27 +01:00
.gitattributes improve git diff 2016-11-13 15:25:12 +01:00
.gitignore git: ignore build directories 2019-03-13 11:57:05 +01:00
.travis.yml ci: introduce Travis builds for GitHub repositories 2019-03-26 22:31:40 +01:00
GNUmakefile test: move to app directory 2019-02-26 15:29:27 +01:00
MAINTAINERS test/stack: check stack API 2019-04-04 22:06:16 +02:00
Makefile license: use SPDX tag in root makefile 2018-01-04 22:41:38 +01:00
meson_options.txt build: use integer for max ethdev ports option 2019-03-26 23:08:09 +01:00
meson.build eal: add OS specific header file 2019-04-03 01:11:56 +02:00
README license: introduce SPDX identifiers 2018-01-04 22:41:38 +01:00
VERSION build: add single source of DPDK version number 2019-03-27 09:43:23 +01: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