numam-dpdk/drivers
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
..
crypto ring: return remaining entry count when dequeuing 2017-03-29 22:32:20 +02:00
mempool mempool: move stack handler as a driver 2017-04-03 19:45:45 +02:00
net net/bonding: reduce slave starvation on Rx poll 2017-04-04 18:59:45 +02:00
Makefile mempool: move ring handler as a driver 2017-04-03 19:45:45 +02:00