3e7bced6a6
It seems that with gcc >5.x and -O2/-O3 optimization breaks packet grouping algorithm in l3fwd-thread application causing segfault. When last packet pointer "lp" and "pnum->u64" buffer points the same memory buffer, high optimization can cause unpredictable results. It seems that assignment of precalculated group sizes may interfere with initialization of new group size when lp points value inside current group and didn't should be changed. With gcc >5.x and optimization we cannot be sure which assignment will be done first, so the group size can be counted incorrectly causing segfault. This patch eliminates intersection of assignment of initial group size (lp[0] = 1) and precalculated group sizes when gptbl[v].idx < 4. The same patch was applied for original l3fwd ( |
||
---|---|---|
app | ||
config | ||
doc | ||
drivers | ||
examples | ||
lib | ||
mk | ||
pkg | ||
scripts | ||
tools | ||
.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