On 2015-10-12 16:47, Jesse Gross wrote:
On Mon, Oct 12, 2015 at 3:26 PM, Ramu Ramamurthy
<srama...@linux.vnet.ibm.com> wrote:

Problem:
--------

When using OVS with GRE tunnels, and GRO is enabled on the nic,
We find that GRO doesnt really take effect. As a result, TCP stream
performance on a 10G nic is around 2-3Gbps.

Root Cause:
-----------

The protocol field set in GRE (by OVS) is ETH_P_TEB.
The code in gre_gro_receive() (gre_offload.c) calls
gro_find_receive_by_type() to determine a gro handler for the
ETH_P_TEB protocol. However, no such protocol is registered
at the device layer (only ETH_P_IP, ETH_P_IPV6, and mpls related
protocols are registered). Hence, GRO is skipped.

Why doesn't this work?

commit 9b174d88c257150562b0101fcc6cb6c3cb74275c
Author: Jesse Gross <je...@nicira.com>
Date:   Tue Dec 30 19:10:15 2014 -0800

    net: Add Transparent Ethernet Bridging GRO support.

Currently the only tunnel protocol that supports GRO with encapsulated Ethernet is VXLAN. This pulls out the Ethernet code into a proper layer so that it can be used by other tunnel protocols such as GRE and Geneve.

    Signed-off-by: Jesse Gross <je...@nicira.com>
    Signed-off-by: David S. Miller <da...@davemloft.net>

Thanks, your commit fixes the same problem in the 4.x kernels. So the patch above is redundant.

We are using the 3.x kernels and thats why I could not see your fix in my tests.

We/distros would need to backport your fix to 3.x for us to consume it.

--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to