Re: [PATCH v2 net-next] net: introduce gro_frag_list_enable sysctl
From: David Miller <davem@davemloft.net>
Date: 2013-10-30 02:33:33
From: Jerry Chu <redacted> Date: Tue, 29 Oct 2013 19:13:50 -0700
On Tue, Oct 29, 2013 at 7:05 PM, Herbert Xu [off-list ref] wrote:quoted
On Tue, Oct 29, 2013 at 10:02:53PM -0400, David Miller wrote:quoted
From: Eric Dumazet <redacted> Date: Tue, 29 Oct 2013 17:53:48 -0700quoted
So should we apply the first fix to avoid the BUG_ON() ?Please be more specific, are you talking about splitting up this patch in some way?I think Eric is referring to the patch that removes the BUG_ON in skb_segment and deals with the new mega-GRO packets. I think that's fine for stable, but for the long term we should fix it properly as these new meag-GRO packets still retain the existing packet boundaries and are trivially segmentable. If we are indeed able to do that, I doubt we would even need the sysctl patch since the GRO performance should be vastly superior to the non-GRO case, even for a router/bridge.Probably not the case for the simple forwarding case. See my test result of some small (5-8%) CPU+throughput penalty from GRO (over GRE tunnel) posted previously. But I can believe the number may be very different if the forwarding path involves more work (NAT, iptables filtering,...,etc) resulting in a higher per pkt cost.
It's that way because it's not implemented properly. GRO should always win, even on a router, because it decreases the number of fundamental operations (routing lookups) that the stack needs to perform.