linux_dsm_epyc7002/drivers/net/ethernet/broadcom
Eric Dumazet 60e66fee56 bnx2x: record rx queue for LRO packets
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 <edumazet@google.com>
Cc: Willem de Bruijn <willemb@google.com>
Cc: Eilon Greenstein <eilong@broadcom.com>
Acked-by: Dmitry Kravkov <dmitry@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2013-10-17 15:42:35 -04:00
..
bnx2x bnx2x: record rx queue for LRO packets 2013-10-17 15:42:35 -04:00
b44.c Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux into mips-for-linux-next 2013-02-22 10:07:30 +01:00
b44.h
bcm63xx_enet.c bcm63xx_enet: remove deprecated IRQF_DISABLED 2013-09-11 16:09:58 -04:00
bcm63xx_enet.h bcm63xx_enet: add support Broadcom BCM6345 Ethernet 2013-06-13 17:22:08 -07:00
bgmac.c bgmac: implement unaligned addressing for DMA rings that support it 2013-09-16 21:30:59 -04:00
bgmac.h bgmac: implement unaligned addressing for DMA rings that support it 2013-09-16 21:30:59 -04:00
bnx2_fw.h
bnx2.c drivers:net: Convert dma_alloc_coherent(...__GFP_ZERO) to dma_zalloc_coherent 2013-08-29 21:55:23 -04:00
bnx2.h bnx2: Update version to 2.2.4 2013-08-07 10:44:08 -07:00
cnic_defs.h cnic: Update version to 2.5.17 and copyright year. 2013-07-29 22:03:07 -07:00
cnic_if.h cnic: Update version to 2.5.18. 2013-09-04 00:27:27 -04:00
cnic.c cnic: Fix crash in cnic_bnx2x_service_kcq() 2013-09-18 12:24:32 -04:00
cnic.h cnic: Eliminate local copy of pfid. 2013-09-04 00:27:26 -04:00
Kconfig Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-next into for-davem 2013-08-12 14:45:06 -04:00
Makefile bgmac: driver for GBit MAC core on BCMA bus 2013-01-09 23:37:03 -08:00
sb1250-mac.c net: ethernet: use platform_{get,set}_drvdata() 2013-05-25 21:27:58 -07:00
tg3.c tg3: Use pci_dev pm_cap 2013-09-13 20:13:00 -04:00
tg3.h tg3: Use pci_dev pm_cap 2013-09-13 20:13:00 -04:00