74a640dac8
Having those modulo operations implies costly instructions execution, what can be avoided with conditionals and unlikely clauses. This change makes the software ring read and write indexes to be now always within the ring size which has to be handled properly. The main problem is when write pointer wraps and being less than the read pointer. This happened before, but just with indexes type size (uint32_t) wrapping, and in that case the processor does the right thing no requiring special handling by software. This work has also led to discovering redundant pointers in the driver, which have been removed. Signed-off-by: Alejandro Lucero <alejandro.lucero@netronome.com> |
||
---|---|---|
app | ||
buildtools | ||
config | ||
devtools | ||
doc | ||
drivers | ||
examples | ||
lib | ||
mk | ||
pkg | ||
usertools | ||
.gitattributes | ||
.gitignore | ||
GNUmakefile | ||
LICENSE.GPL | ||
LICENSE.LGPL | ||
MAINTAINERS | ||
Makefile | ||
README |
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 license for the core libraries and drivers. The kernel components are GPLv2 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