Go to file
Tomasz Kulasek 3e7bced6a6 examples/performance-thread: fix crash with gcc 5
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 (af1694d94).

Fixes: d48415e1fe ("examples/performance-thread: add l3fwd-thread app")

Signed-off-by: Tomasz Kulasek <tomaszx.kulasek@intel.com>
2016-04-27 17:41:46 +02:00
app acl: fix division by float zero in test app 2016-04-27 17:41:46 +02:00
config pci: remove deprecated specific config 2016-04-20 11:53:43 +02:00
doc doc: improve nics features matrix 2016-04-26 18:17:45 +02:00
drivers ethdev: remove deprecated statistics 2016-04-20 13:49:31 +02:00
examples examples/performance-thread: fix crash with gcc 5 2016-04-27 17:41:46 +02:00
lib vfio: fix socket option check 2016-04-27 17:41:46 +02:00
mk mk: show version as a decimal integer 2016-04-07 23:05:47 +02:00
pkg version: 16.04 2016-04-11 23:56:34 +02:00
scripts scripts: check commit formatting 2016-04-11 23:56:34 +02:00
tools tools: fix setup with built-in kernel modules 2016-03-24 22:04:10 +01:00
.gitignore init DPDK repository 2013-03-07 10:57:42 +01:00
GNUmakefile drivers: create new directory 2015-05-22 15:51:38 +02:00
LICENSE.GPL doc: GPL/LGPL licenses 2013-07-25 14:43:06 +02:00
LICENSE.LGPL doc: fix file format (dos to unix) 2013-09-06 11:43:07 +02:00
MAINTAINERS scripts: check commit formatting 2016-04-11 23:56:34 +02:00
Makefile remove trailing whitespaces 2014-06-11 00:29:34 +02:00
README doc: add readme file 2015-12-13 22:06:58 +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 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