numam-dpdk/drivers/net/bonding
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
..
Makefile mk: optimize directory dependencies 2017-03-27 23:28:43 +02:00
rte_eth_bond_8023ad_private.h net/bonding: allow external state machine in mode 4 2016-06-20 18:40:44 +02:00
rte_eth_bond_8023ad.c mbuf: use pktmbuf helper to create the pool 2017-03-15 13:48:02 +01:00
rte_eth_bond_8023ad.h net/bonding: fix exported symbol versioning 2016-07-11 14:56:51 +02:00
rte_eth_bond_alb.c net/bonding: replace panic with errno code return 2016-06-20 17:21:48 +02:00
rte_eth_bond_alb.h bond: move to drivers/net/ 2015-05-22 15:51:38 +02:00
rte_eth_bond_api.c net: align ethdev and eal driver names 2017-01-17 19:36:47 +01:00
rte_eth_bond_args.c ethdev: decouple from PCI device 2016-12-25 23:30:19 +01:00
rte_eth_bond_pmd.c net/bonding: reduce slave starvation on Rx poll 2017-04-04 18:59:45 +02:00
rte_eth_bond_private.h net/bonding: reduce slave starvation on Rx poll 2017-04-04 18:59:45 +02:00
rte_eth_bond_version.map net/bonding: allow external state machine in mode 4 2016-06-20 18:40:44 +02:00
rte_eth_bond.h bonding: support port hotplug 2015-07-27 19:20:44 +02:00