summaryrefslogtreecommitdiffstats
path: root/drivers/net/bonding/bond_alb.h
diff options
context:
space:
mode:
authorMahesh Bandewar <maheshb@google.com>2014-10-04 17:45:01 -0700
committerDavid S. Miller <davem@davemloft.net>2014-10-06 17:13:07 -0400
commitee6377147409a00c071b2da853059a7d59979fbc (patch)
tree82df6bc2bc00711351463081a13785c04b45f773 /drivers/net/bonding/bond_alb.h
parentd7021325a2ea5aaf4458097341c988f9dc93491f (diff)
downloadop-kernel-dev-ee6377147409a00c071b2da853059a7d59979fbc.zip
op-kernel-dev-ee6377147409a00c071b2da853059a7d59979fbc.tar.gz
bonding: Simplify the xmit function for modes that use xmit_hash
Earlier change to use usable slave array for TLB mode had an additional performance advantage. So extending the same logic to all other modes that use xmit-hash for slave selection (viz 802.3AD, and XOR modes). Also consolidating this with the earlier TLB change. The main idea is to build the usable slaves array in the control path and use that array for slave selection during xmit operation. Measured performance in a setup with a bond of 4x1G NICs with 200 instances of netperf for the modes involved (3ad, xor, tlb) cmd: netperf -t TCP_RR -H <TargetHost> -l 60 -s 5 Mode TPS-Before TPS-After 802.3ad : 468,694 493,101 TLB (lb=0): 392,583 392,965 XOR : 475,696 484,517 Signed-off-by: Mahesh Bandewar <maheshb@google.com> Signed-off-by: Nikolay Aleksandrov <nikolay@redhat.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/bonding/bond_alb.h')
-rw-r--r--drivers/net/bonding/bond_alb.h8
1 files changed, 0 insertions, 8 deletions
diff --git a/drivers/net/bonding/bond_alb.h b/drivers/net/bonding/bond_alb.h
index 3c6a7ff..1ad473b 100644
--- a/drivers/net/bonding/bond_alb.h
+++ b/drivers/net/bonding/bond_alb.h
@@ -139,19 +139,11 @@ struct tlb_slave_info {
*/
};
-struct tlb_up_slave {
- unsigned int count;
- struct rcu_head rcu;
- struct slave *arr[0];
-};
-
struct alb_bond_info {
struct tlb_client_info *tx_hashtbl; /* Dynamically allocated */
u32 unbalanced_load;
int tx_rebalance_counter;
int lp_counter;
- /* -------- non-dynamic tlb mode only ---------*/
- struct tlb_up_slave __rcu *slave_arr; /* Up slaves */
/* -------- rlb parameters -------- */
int rlb_enabled;
struct rlb_client_info *rx_hashtbl; /* Receive hash table */
OpenPOWER on IntegriCloud