Go to file
Olivier Matz 6d714a237d mbuf: fix performance of freeing with non atomic refcnt
When RTE_MBUF_REFCNT_ATOMIC=n, the decrement of the mbuf reference
counter uses an atomic operation. This is not necessary and impacts
the performance (seen with TRex traffic generator).

We cannot replace rte_atomic16_add_return() by rte_mbuf_refcnt_update()
because it would add an additional check.

Solves this by introducing __rte_mbuf_refcnt_update(), which
updates the reference counter without doing anything else.

Fixes: 8f094a9ac5 ("mbuf: set mbuf fields while in pool")
Cc: stable@dpdk.org

Suggested-by: Hanoch Haim <hhaim@cisco.com>
Signed-off-by: Olivier Matz <olivier.matz@6wind.com>
2018-01-19 00:43:56 +01:00
app app/procinfo: add compilation option in config 2018-01-17 19:42:01 +01:00
buildtools pmdinfogen: fix cross compilation for ARM big endian 2018-01-12 17:26:41 +01:00
config app/procinfo: add compilation option in config 2018-01-17 19:42:01 +01:00
devtools log: remove log level config option 2018-01-17 14:21:46 +01:00
doc doc: announce ABI change for ring structure 2018-01-17 22:05:36 +01:00
drivers log: remove log level config option 2018-01-17 14:21:46 +01:00
examples log: remove log level config option 2018-01-17 14:21:46 +01:00
lib mbuf: fix performance of freeing with non atomic refcnt 2018-01-19 00:43:56 +01:00
license license: introduce SPDX identifiers 2018-01-04 22:41:38 +01:00
mk net/avf: initialize PMD 2018-01-16 18:47:49 +01:00
pkg version: 17.11.0 2017-11-15 19:00:28 +01:00
test test/flow_classify: fix build warning 2018-01-19 00:43:56 +01:00
usertools tools: use SPDX tag for Intel copyright files 2018-01-04 22:41:39 +01:00
.gitattributes improve git diff 2016-11-13 15:25:12 +01:00
.gitignore devtools: add tags and cscope index generation 2017-04-30 12:57:04 +02:00
GNUmakefile license: use SPDX tag in root makefile 2018-01-04 22:41:38 +01:00
MAINTAINERS maintainers: update for enic 2018-01-16 18:47:49 +01:00
Makefile license: use SPDX tag in root makefile 2018-01-04 22:41:38 +01:00
README license: introduce SPDX identifiers 2018-01-04 22:41:38 +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