All of lore.kernel.org
 help / color / mirror / Atom feed
From: Ramu Ramamurthy <sramamur@linux.vnet.ibm.com>
To: Tom Herbert <tom@herbertland.com>
Cc: Or Gerlitz <gerlitz.or@gmail.com>,
	"David S. Miller" <davem@davemloft.net>,
	Jiri Benc <jbenc@redhat.com>, James Morris <jmorris@namei.org>,
	Linux Kernel Network Developers <netdev@vger.kernel.org>,
	pradeeps@linux.vnet.ibm.com, J Kidambi <jkidambi@us.ibm.com>
Subject: Re: [PATCH] - vxlan: gro not effective for intel 82599
Date: Mon, 29 Jun 2015 12:56:47 -0700	[thread overview]
Message-ID: <64eee574bcb29f8ec0a6c6536a910d01@imap.linux.ibm.com> (raw)
In-Reply-To: <CALx6S35B99cu=oyYcz4fSgAeA2ho6b6-H6vWg=Vq0s1UEVf0Uw@mail.gmail.com>

On 2015-06-28 14:17, Tom Herbert wrote:
> On Sun, Jun 28, 2015 at 1:19 PM, Or Gerlitz <gerlitz.or@gmail.com> 
> wrote:
>> On Fri, Jun 26, 2015 at 10:59 PM, Tom Herbert <tom@herbertland.com> 
>> wrote:
>> [...]
>>> Looks like GRO was never implemented for vxlan tunnels. The driver is
>>> simply calling netif_rx instead of using the GRO cells 
>>> infrastructure.
>>> geneve is doing the same thing. For other tunnels which are used in
>>> foo-over-udp (GRE, IPIP, SIT) ip_tunnel_rcv is called which in turn
>>> calls gro_cells_receive.
>> 
>> Tom,
>> 
>> Since v3.14, when a tunneled (say VXLAN/GRE) packets are received on
>> the physical interface, they go through GRO aggregation before being
>> delivered up to the tunnel "device" (e.g either vxlan/gre netdevice or
>> OVS vxlan/gre vport) -- so in that respect, can you elaborate a little
>> further why we want to GRO them again?
>> 
> 
> If we don't have a verifiable checksum from the device GRO is not
> applied to UDP encapsulated packets at the physical interface, but can
> be done at the tunnel. Ramu is seeing poor performance because there
> is no GRO at all is happening, so doing it at the tunnel is an
> improvement. As I described before, avoiding checksum calculation in
> the device NAPI still seems to be a good thing (in my testing I do see
> a slight regression if we were to do the checksum in device NAPI).
> 
> btw, the real "fix" for this is for NICs to provide CHECKSUM_COMPLETE! 
> :-)
> 
> Tom
> 
>> Or.

When I force the sender to set a non-zero UDP checksum for vxlan 
encapsulated tcp-stream,
then, I can see the gro activated at the receiver (82599ES nic),
and the throughput is ~8.5Gbps !

So, to get gro to be effective for the 82599ES receiver, the sender 
needs to set the UDP
checksum.  If the sender does NOT set the UDP checksum (udp-checksum == 
0), then the gro-cells patch suggested by Tom
will perform gro at the tunnel device level.

      reply	other threads:[~2015-06-29 19:56 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-06-26  0:03 [PATCH] - vxlan: gro not effective for intel 82599 Ramu Ramamurthy
2015-06-26  0:20 ` Tom Herbert
2015-06-26  1:06   ` Ramu Ramamurthy
2015-06-26  2:57     ` Tom Herbert
2015-06-26  5:15       ` Eric Dumazet
2015-06-26 17:24         ` Tom Herbert
2015-06-26 17:36       ` Ramu Ramamurthy
2015-06-26 18:04         ` Tom Herbert
2015-06-26 19:31           ` Ramu Ramamurthy
2015-06-26 19:59             ` Tom Herbert
2015-06-26 21:44               ` Ramu Ramamurthy
2015-06-28 20:19               ` Or Gerlitz
2015-06-28 21:17                 ` Tom Herbert
2015-06-29 19:56                   ` Ramu Ramamurthy [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=64eee574bcb29f8ec0a6c6536a910d01@imap.linux.ibm.com \
    --to=sramamur@linux.vnet.ibm.com \
    --cc=davem@davemloft.net \
    --cc=gerlitz.or@gmail.com \
    --cc=jbenc@redhat.com \
    --cc=jkidambi@us.ibm.com \
    --cc=jmorris@namei.org \
    --cc=netdev@vger.kernel.org \
    --cc=pradeeps@linux.vnet.ibm.com \
    --cc=tom@herbertland.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.