[net] mlx4: mark napi id for gro_skb
diff mbox series

Message ID 1405309364-32258-1-git-send-email-jasowang@redhat.com
State New, archived
Headers show
Series
  • [net] mlx4: mark napi id for gro_skb
Related show

Commit Message

Jason Wang July 14, 2014, 3:42 a.m. UTC
Napi id was not marked for gro_skb, this will lead rx busy loop won't
work correctly since they stack never try to call low latency receive
method because of a zero socket napi id. Fix this by marking napi id
for gro_skb.

The transaction rate of 1 byte netperf tcp_rr gets about 50% increased
(from 20531.68 to 30610.88).

Cc: Amir Vadai <amirv@mellanox.com>
Signed-off-by: Jason Wang <jasowang@redhat.com>
---
 drivers/net/ethernet/mellanox/mlx4/en_rx.c | 1 +
 1 file changed, 1 insertion(+)

Comments

David Miller July 14, 2014, 11:14 p.m. UTC | #1
From: Jason Wang <jasowang@redhat.com>
Date: Mon, 14 Jul 2014 11:42:44 +0800

> Napi id was not marked for gro_skb, this will lead rx busy loop won't
> work correctly since they stack never try to call low latency receive
> method because of a zero socket napi id. Fix this by marking napi id
> for gro_skb.
> 
> The transaction rate of 1 byte netperf tcp_rr gets about 50% increased
> (from 20531.68 to 30610.88).
> 
> Cc: Amir Vadai <amirv@mellanox.com>
> Signed-off-by: Jason Wang <jasowang@redhat.com>

Applied, thanks.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Patch
diff mbox series

diff --git a/drivers/net/ethernet/mellanox/mlx4/en_rx.c b/drivers/net/ethernet/mellanox/mlx4/en_rx.c
index 9672417..5535862 100644
--- a/drivers/net/ethernet/mellanox/mlx4/en_rx.c
+++ b/drivers/net/ethernet/mellanox/mlx4/en_rx.c
@@ -783,6 +783,7 @@  int mlx4_en_process_rx_cq(struct net_device *dev, struct mlx4_en_cq *cq, int bud
 							     PKT_HASH_TYPE_L3);
 
 					skb_record_rx_queue(gro_skb, cq->ring);
+					skb_mark_napi_id(gro_skb, &cq->napi);
 
 					if (ring->hwtstamp_rx_filter == HWTSTAMP_FILTER_ALL) {
 						timestamp = mlx4_en_get_cqe_ts(cqe);