net/bonding: fix Rx slave fairness
authorChas Williams <chas3@att.com>
Thu, 20 Sep 2018 12:52:26 +0000 (08:52 -0400)
committerFerruh Yigit <ferruh.yigit@intel.com>
Thu, 27 Sep 2018 23:41:02 +0000 (01:41 +0200)
commite1110e97764873de0af28e6fa11dcd9c170d4e53
treef80b28d79e11691f793d7b85ff71f517148c09cf
parentbfabd06000c0923e41bead56cc97c28a8b385929
net/bonding: fix Rx slave fairness

Some PMDs, especially ones with vector receives, require a minimum number
of receive buffers in order to receive any packets.  If the first slave
read leaves less than this number available, a read from the next slave
may return 0 implying that the slave doesn't have any packets which
results in skipping over that slave as the next active slave.

To fix this, implement round robin for the slaves during receive that
is only advanced to the next slave at the end of each receive burst.
This is also done to provide some additional fairness in processing in
other bonding RX burst routines as well.

Fixes: 2efb58cbab6e ("bond: new link bonding library")
Cc: stable@dpdk.org
Signed-off-by: Chas Williams <chas3@att.com>
Acked-by: Luca Boccassi <bluca@debian.org>
Acked-by: Matan Azrad <matan@mellanox.com>
drivers/net/bonding/rte_eth_bond_pmd.c