Commit ada7c19e authored by Eric Dumazet's avatar Eric Dumazet Committed by David S. Miller

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: default avatargovindarajulu.v <>
Signed-off-by: default avatarEric Dumazet <>
Cc: Havard Skinnemoen <>
Cc: Ying Cai <>
Cc: Eilon Greenstein <>
Acked-by: default avatarDmitry Kravkov <>
Signed-off-by: default avatarDavid S. Miller <>
parent e69972f5
...@@ -1829,7 +1829,7 @@ u16 bnx2x_select_queue(struct net_device *dev, struct sk_buff *skb) ...@@ -1829,7 +1829,7 @@ u16 bnx2x_select_queue(struct net_device *dev, struct sk_buff *skb)
} }
/* select a non-FCoE queue */ /* 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) void bnx2x_set_num_queues(struct bnx2x *bp)
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment