This is a note to let you know that I've just added the patch titled
bnx2x: record rx queue for LRO packets
to the 3.11-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary
The filename of the patch is:
bnx2x-record-rx-queue-for-lro-packets.patch
and it can be found in the queue-3.11 subdirectory.
If you, or anyone else, feels it should not be added to the stable tree,
please let <[email protected]> know about it.
>From d99d51100021c9f8b335fc1931880618eaa448e3 Mon Sep 17 00:00:00 2001
From: Eric Dumazet <[email protected]>
Date: Sat, 12 Oct 2013 14:08:34 -0700
Subject: bnx2x: record rx queue for LRO packets
From: Eric Dumazet <[email protected]>
[ Upstream commit 60e66fee56b2256dcb1dc2ea1b2ddcb6e273857d ]
RPS support is kind of broken on bnx2x, because only non LRO packets
get proper rx queue information. This triggers reorders, as it seems
bnx2x like to generate a non LRO packet for segment including TCP PUSH
flag : (this might be pure coincidence, but all the reorders I've
seen involve segments with a PUSH)
11:13:34.335847 IP A > B: . 415808:447136(31328) ack 1 win 457
<nop,nop,timestamp 3789336 3985797>
11:13:34.335992 IP A > B: . 447136:448560(1424) ack 1 win 457
<nop,nop,timestamp 3789336 3985797>
11:13:34.336391 IP A > B: . 448560:479888(31328) ack 1 win 457
<nop,nop,timestamp 3789337 3985797>
11:13:34.336425 IP A > B: P 511216:512640(1424) ack 1 win 457
<nop,nop,timestamp 3789337 3985798>
11:13:34.336423 IP A > B: . 479888:511216(31328) ack 1 win 457
<nop,nop,timestamp 3789337 3985798>
11:13:34.336924 IP A > B: . 512640:543968(31328) ack 1 win 457
<nop,nop,timestamp 3789337 3985798>
11:13:34.336963 IP A > B: . 543968:575296(31328) ack 1 win 457
<nop,nop,timestamp 3789337 3985798>
We must call skb_record_rx_queue() to properly give to RPS (and more
generally for TX queue selection on forward path) the receive queue
information.
Similar fix is needed for skb_mark_napi_id(), but will be handled
in a separate patch to ease stable backports.
Signed-off-by: Eric Dumazet <[email protected]>
Cc: Willem de Bruijn <[email protected]>
Cc: Eilon Greenstein <[email protected]>
Acked-by: Dmitry Kravkov <[email protected]>
Signed-off-by: David S. Miller <[email protected]>
Signed-off-by: Greg Kroah-Hartman <[email protected]>
---
drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.c | 1 +
1 file changed, 1 insertion(+)
--- a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.c
+++ b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.c
@@ -676,6 +676,7 @@ static void bnx2x_gro_receive(struct bnx
}
}
#endif
+ skb_record_rx_queue(skb, fp->rx_queue);
napi_gro_receive(&fp->napi, skb);
}
Patches currently in stable-queue which might be from [email protected] are
queue-3.11/tcp-tsq-can-use-a-dynamic-limit.patch
queue-3.11/net-mlx4_en-rename-name-of-mlx4_en_rx_alloc-members.patch
queue-3.11/ipv4-fix-ineffective-source-address-selection.patch
queue-3.11/net-unix-inherit-sock_pass-cred-sec-flags-from-socket-to-fix-race.patch
queue-3.11/net-do-not-call-sock_put-on-timewait-sockets.patch
queue-3.11/tcp-must-unclone-packets-before-mangling-them.patch
queue-3.11/netem-update-backlog-after-drop.patch
queue-3.11/l2tp-must-disable-bh-before-calling-l2tp_xmit_skb.patch
queue-3.11/tcp-do-not-forget-fin-in-tcp_shifted_skb.patch
queue-3.11/bnx2x-record-rx-queue-for-lro-packets.patch
queue-3.11/net-mlx4_en-fix-pages-never-dma-unmapped-on-rx.patch
queue-3.11/tcp-tso-packets-automatic-sizing.patch
--
To unsubscribe from this list: send the line "unsubscribe stable" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html