aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEric Dumazet <edumazet@google.com>2013-05-31 14:32:55 +0000
committerDavid S. Miller <davem@davemloft.net>2013-06-01 19:38:32 -0700
commitada7c19e6d27bf4bb6a242960ac6e76f9f21cdd7 (patch)
tree10658c0bc99a430306995d2b105837838b408fe0
parentcxgb4: Force uninitialized state if FW_ON_ADAPTER is < FW_VERSION and we're the MASTER_PF (diff)
downloadlinux-dev-ada7c19e6d27bf4bb6a242960ac6e76f9f21cdd7.tar.xz
linux-dev-ada7c19e6d27bf4bb6a242960ac6e76f9f21cdd7.zip
bnx2x: use XPS if possible for bnx2x_select_queue instead of pure hash
The bnx2x_select_queue() was using __skb_tx_hash() to select the transmit queue, totally ignoring XPS settings, while XPS can help performance quite significantly, so change the bnx2x_select_queue() to use __dev_pick_tx() instead which will use XPS if configured. Based on patches from Ying Cai and Havard Skinnemoen Reported-by: govindarajulu.v <govindarajulu90@gmail.com> Signed-off-by: Eric Dumazet <edumazet@google.com> Cc: Havard Skinnemoen <hskinnemoen@google.com> Cc: Ying Cai <ycai@google.com> Cc: Eilon Greenstein <eilong@broadcom.com> Acked-by: Dmitry Kravkov <dmitry@broadcom.com> Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r--drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.c b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.c
index c80f1d26f40d..3651f6d449eb 100644
--- a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.c
+++ b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.c
@@ -1829,7 +1829,7 @@ u16 bnx2x_select_queue(struct net_device *dev, struct sk_buff *skb)
}
/* select a non-FCoE queue */
- return __skb_tx_hash(dev, skb, BNX2X_NUM_ETH_QUEUES(bp));
+ return __netdev_pick_tx(dev, skb) % BNX2X_NUM_ETH_QUEUES(bp);
}
void bnx2x_set_num_queues(struct bnx2x *bp)