I tested this (both IPv4 over Geneve and IPv6 over sit) as well as
looked at the proposed patch and everything looks good to me.

With a very simple setup (this does not go up to VMs so the full
performance difference is not there), I see correct packet aggregation
and improved performance:

Before:

root@server89:~# netperf -H 30.0.0.1
MIGRATED TCP STREAM TEST from 0.0.0.0 (0.0.0.0) port 0 AF_INET to 30.0.0.1 () 
port 0 AF_INET : demo
Recv   Send    Send                          
Socket Socket  Message  Elapsed              
Size   Size    Size     Time     Throughput  
bytes  bytes   bytes    secs.    10^6bits/sec  

 87380  16384  16384    10.01    5538.36

After:

root@server89:~# netperf -H 30.0.0.1
MIGRATED TCP STREAM TEST from 0.0.0.0 (0.0.0.0) port 0 AF_INET to 30.0.0.1 () 
port 0 AF_INET : demo
Recv   Send    Send                          
Socket Socket  Message  Elapsed              
Size   Size    Size     Time     Throughput  
bytes  bytes   bytes    secs.    10^6bits/sec  

 87380  16384  16384    10.00    7291.98

-- 
You received this bug notification because you are a member of Kernel
Packages, which is subscribed to linux in Ubuntu.
https://bugs.launchpad.net/bugs/1602755

Title:
  Tunnel offload indications not stripped from encapsulated packets,
  causing performance overhead

Status in linux package in Ubuntu:
  Fix Committed
Status in linux source package in Xenial:
  In Progress

Bug description:
  Commit:
  
https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit?id=a09a4c8dd1ec7f830e1fb9e59eb72bddc965d168

  Description:

  tunnels: Remove encapsulation offloads on decap.

  If a packet is either locally encapsulated or processed through GRO
  it is marked with the offloads that it requires. However, when it is
  decapsulated these tunnel offload indications are not removed. This
  means that if we receive an encapsulated TCP packet, aggregate it with
  GRO, decapsulate, and retransmit the resulting frame on a NIC that does
  not support encapsulation, we won't be able to take advantage of hardware
  offloads even though it is just a simple TCP packet at this point.

  This fixes the problem by stripping off encapsulation offload indications
  when packets are decapsulated.

  The performance impacts of this bug are significant. In a test where a
  Geneve encapsulated TCP stream is sent to a hypervisor, GRO'ed, decapsulated,
  and bridged to a VM performance is improved by 60% (5Gbps->8Gbps) as a
  result of avoiding unnecessary segmentation at the VM tap interface.

  Reported-by: Ramu Ramamurthy <srama...@linux.vnet.ibm.com>
  Fixes: 68c33163 ("v4 GRE: Add TCP segmentation offload for GRE")
  Signed-off-by: Jesse Gross <je...@kernel.org>
  Signed-off-by: David S. Miller <da...@davemloft.net>

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1602755/+subscriptions

-- 
Mailing list: https://launchpad.net/~kernel-packages
Post to     : kernel-packages@lists.launchpad.net
Unsubscribe : https://launchpad.net/~kernel-packages
More help   : https://help.launchpad.net/ListHelp

Reply via email to