RE: ipgre rss is broken since gro
From: Dmitry Kravkov <hidden>
Date: 2012-12-10 11:33:15
-----Original Message----- From: Eric Dumazet [mailto:edumazet@google.com] Sent: Monday, December 10, 2012 1:27 AM To: Dmitry Kravkov Cc: netdev@vger.kernel.org Subject: Re: ipgre rss is broken since gro On Sun, Dec 9, 2012 at 12:49 PM, Dmitry Kravkov [off-list ref] wrote:quoted
for this item: drop_watch does not show any drops (i've disable all other interfaces for clear env) I will explain a little bit more the setup: bnx2x device (under testing) is configured for RSS for IPGRE packets. Sending multiple (3) TCP_STREAM causes ip_gre interface to disappear packets (even ICMP). This is not happening with single TCP_STREAM, or before gro_cell introduction.I dont know, I tried a bnx2x setup, and 100 tcp flows, no special problem.
Current bnx2x do not apply RSS for GRE, non GRE RSS is working w/o problem.
If you receive a lot of packets on a single RX queue, they might be dropped because cpu cant cope with the load (This has nothing to do with GRE or GRO )
CPU is not loaded at all
cat /proc/net/softnet_stat
Please find attached.
For gre interface RX and DROP statistics are advancing simultaneously (by one each ICMP request):
[root@ ~]# ifconfig gre
gre Link encap:UNSPEC HWaddr C0-A8-0A-40-73-72-83-D2-00-00-00-00-00-00-00-00
inet addr:8.0.0.1 P-t-P:8.0.0.1 Mask:255.255.255.0
inet6 addr: fe80::5efe:c0a8:a40/64 Scope:Link
UP POINTOPOINT RUNNING NOARP MTU:1476 Metric:1
RX packets:1646824 errors:0 dropped:51610 overruns:0 frame:0
TX packets:140519 errors:1 dropped:0 overruns:0 carrier:1
collisions:0 txqueuelen:0
RX bytes:2357650904 (2.1 GiB) TX bytes:7309072 (6.9 MiB)
[root@ ~]# ifconfig gre
gre Link encap:UNSPEC HWaddr C0-A8-0A-40-73-72-83-82-00-00-00-00-00-00-00-00
inet addr:8.0.0.1 P-t-P:8.0.0.1 Mask:255.255.255.0
inet6 addr: fe80::5efe:c0a8:a40/64 Scope:Link
UP POINTOPOINT RUNNING NOARP MTU:1476 Metric:1
RX packets:1646826 errors:0 dropped:51612 overruns:0 frame:0
TX packets:140519 errors:1 dropped:0 overruns:0 carrier:1
collisions:0 txqueuelen:0
RX bytes:2357651072 (2.1 GiB) TX bytes:7309072 (6.9 MiB)
[root@ ~]# tcpdump -i gre
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on gre, link-type LINUX_SLL (Linux cooked), capture size 65535 bytes
^C
0 packets captured
0 packets received by filter
0 packets dropped by kernel
2 packets dropped by interface