PATCH 4/6] mlx4_en: Shift completion vector index between ports

Previous thread: [PATCH 3/6] mlx4_en: Linear skb support for RX side. by Yevgeny Petrilin on Thursday, March 26, 2009 - 6:56 am. (1 message)

Next thread: [PATCH 5/6] mlx4_en: Assign dummy event handler for TX queue by Yevgeny Petrilin on Thursday, March 26, 2009 - 6:58 am. (1 message)
From: Yevgeny Petrilin
Date: Thursday, March 26, 2009 - 6:57 am

For both ports UDP traffic is steered to RX ring 0.
If both the ports attached RX ring 0 to the same completion
vector, all UDP traffic for both ports will be handled by the
same core. Making the shift would prevent this situation.
Dual port UDP Bandwidth was increased by ~70%.

Signed-off-by: Yevgeny Petrilin <yevgenyp@mellanox.co.il>
---
 drivers/net/mlx4/en_cq.c |    3 ++-
 1 files changed, 2 insertions(+), 1 deletions(-)

diff --git a/drivers/net/mlx4/en_cq.c b/drivers/net/mlx4/en_cq.c
index 91f50de..450cf44 100644
--- a/drivers/net/mlx4/en_cq.c
+++ b/drivers/net/mlx4/en_cq.c
@@ -53,7 +53,8 @@ int mlx4_en_create_cq(struct mlx4_en_priv *priv,
 	cq->size = entries;
 	if (mode == RX) {
 		cq->buf_size = cq->size * sizeof(struct mlx4_cqe);
-		cq->vector   = ring % mdev->dev->caps.num_comp_vectors;
+		cq->vector   = (ring + priv->port) %
+				mdev->dev->caps.num_comp_vectors;
 	} else {
 		cq->buf_size = sizeof(struct mlx4_cqe);
 		cq->vector   = 0;
-- 
1.6.1.3

--

Previous thread: [PATCH 3/6] mlx4_en: Linear skb support for RX side. by Yevgeny Petrilin on Thursday, March 26, 2009 - 6:56 am. (1 message)

Next thread: [PATCH 5/6] mlx4_en: Assign dummy event handler for TX queue by Yevgeny Petrilin on Thursday, March 26, 2009 - 6:58 am. (1 message)