Thread (15 messages) flat view 15 messages, 4 authors, 2012-12-11

Re: ipgre rss is broken since gro

From: Dmitry Kravkov <hidden>
Date: 2012-12-09 20:49:23

On Sun, 2012-12-09 at 04:04 +0200, Dmitry Kravkov wrote:
On Sat, 2012-12-08 at 18:01 -0800, Eric Dumazet wrote:
quoted
On Sat, Dec 8, 2012 at 3:31 PM, Dmitry Kravkov [off-list ref] wrote:
quoted
Here is the trace for a while:

BUG: unable to handle kernel NULL pointer dereference at           (null)
IP: [<ffffffff8144f35e>] skb_gro_receive+0xbe/0x5a0
Hi Dmitry

NULL pointer deref probably fixed on net tree (or Linus tree) by

http://git.kernel.org/?p=linux/kernel/git/davem/net.git;a=commit;h=c3c7c254b2e8cd99b0adf288c2a1bddacd7ba255
This resolved the deref. Thanks.
quoted
For the GRO stuff and RSS, I wonder if skbs have a property that makes
them dropped somewhere, you might try drop_monitor / drop_watch
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 was searching for the drops by print-out in ip_gre.c but disappeared
packets completes this code:

static int ipgre_rcv(struct sk_buff *skb)
(snip)
	        printk("%s:%d\n", __FUNCTION__, __LINE__);

                tstats = this_cpu_ptr(tunnel->dev->tstats);
                u64_stats_update_begin(&tstats->syncp);
                tstats->rx_packets++;
                tstats->rx_bytes += skb->len;
                u64_stats_update_end(&tstats->syncp);

                gro_cells_receive(&tunnel->gro_cells, skb);
                return 0;
quoted
I will try both and update ... 
Thanks
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help