Go to file
Keith Wiles ae2a04864a net/bonding: reduce slave starvation on Rx poll
When polling the bonded ports for RX packets the old driver would
always start with the first slave in the list. If the requested
number of packets is filled on the first port in a two port config
then the second port could be starved or have larger number of
missed packet errors.

The code attempts to start with a different slave each time RX poll
is done to help eliminate starvation of slave ports. The effect of
the previous code was much lower performance for two slaves in the
bond then just the one slave.

The performance drop was detected when the application can not poll
the rings of Rx packets fast enough and the packets per second for
two or more ports was at the threshold throughput of the application.
At this threshold the slaves would see very little or no drops in
the case of one slave. Then enable the second slave you would see
a large drop rate on the two slave bond and reduction in throughput.

Signed-off-by: Keith Wiles <keith.wiles@intel.com>
Acked-by: Declan Doherty <declan.doherty@intel.com>
2017-04-04 18:59:45 +02:00
app app/testpmd: fix TC mapping in DCB init config 2017-04-04 15:52:51 +02:00
buildtools mk: optimize directory dependencies 2017-03-27 23:28:43 +02:00
config config: enable thunderx nicvf 2017-04-04 18:59:42 +02:00
devtools devtools: make log checking script BSD-compatible 2017-03-27 23:45:56 +02:00
doc net/sfc: implement simple EF10 native Tx datapath 2017-04-04 18:59:43 +02:00
drivers net/bonding: reduce slave starvation on Rx poll 2017-04-04 18:59:45 +02:00
examples examples/ip_fragmentation: fix check of packet type 2017-04-04 14:52:06 +02:00
lib eal/linux: support external Rx interrupt 2017-04-04 18:59:39 +02:00
mk net/kni: add KNI PMD 2017-04-04 15:52:50 +02:00
pkg version: 17.02.0 2017-02-14 22:17:45 +01:00
test cfgfile: support empty value 2017-04-04 16:32:06 +02:00
usertools usertools: fix active interface detection when binding 2017-01-30 17:30:21 +01:00
.gitattributes improve git diff 2016-11-13 15:25:12 +01:00
.gitignore doc: generate NIC overview table from ini files 2016-08-03 18:42:17 +02:00
GNUmakefile mk: do not build tests by default 2017-02-28 16:04:18 +01: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 net/i40e: implement vector PMD for altivec 2017-04-04 15:52:50 +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