netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH net-next 0/3] net: enable GRO for IPIP and SIT
@ 2014-09-09 18:23 Tom Herbert
  2014-09-09 18:23 ` [PATCH net-next 1/3] ipv6: Clear flush_id to make GRO work Tom Herbert
                   ` (3 more replies)
  0 siblings, 4 replies; 9+ messages in thread
From: Tom Herbert @ 2014-09-09 18:23 UTC (permalink / raw)
  To: davem, netdev

This patch sets populates the IPIP and SIT offload structures with
gro_receive and gro_complete functions. This enables use of GRO
for these. Also, fixed a problem in IPv6 where we were not properly
initializing flush_id.

Peformance results are below. Note that these tests were done on bnx2x
which doesn't provide RX checksum offload of IPIP or SIT (i.e. does
not give CHEKCSUM_COMPLETE). Also, we don't get 4-tuple hash for RSS
only 2-tuple in this case so all the packets between two hosts are
winding up on the same queue. Net result is the interrupting CPU is
the bottleneck in GRO (checksumming every packet there).

Testing:

netperf TCP_STREAM between two hosts using bnx2x.

* Before fix

IPIP
  1 connection
    6.53% CPU utilization
    6544.71 Mbps
  20 connections
    13.79% CPU utilization
    9284.54 Mbps

SIT
  1 connection
    6.68% CPU utilization
    5653.36 Mbps
  20 connections
    18.88% CPU utilization
    9154.61 Mbps

* After fix

IPIP
  1 connection
    5.73% CPU utilization
    9279.53 Mbps
  20 connections
    7.14% CPU utilization
    7279.35 Mbps

SIT
  1 connection
    2.95% CPU utilization
    9143.36 Mbps
  20 connections
    7.09% CPU utilization
    6255.3 Mbps

Tom Herbert (3):
  ipv6: Clear flush_id to make GRO work
  ipip: Add gro callbacks to ipip offload
  sit: Add gro callbacks to sit_offload

 net/ipv4/af_inet.c     | 2 ++
 net/ipv6/ip6_offload.c | 5 +++++
 2 files changed, 7 insertions(+)

-- 
2.1.0.rc2.206.gedb03e5

^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2014-09-10  4:32 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-09-09 18:23 [PATCH net-next 0/3] net: enable GRO for IPIP and SIT Tom Herbert
2014-09-09 18:23 ` [PATCH net-next 1/3] ipv6: Clear flush_id to make GRO work Tom Herbert
2014-09-09 18:38   ` Eric Dumazet
2014-09-09 18:52     ` Tom Herbert
2014-09-09 18:23 ` [PATCH 2/3] ipip: Add gro callbacks to ipip offload Tom Herbert
2014-09-09 18:23 ` [PATCH 3/3] sit: Add gro callbacks to sit_offload Tom Herbert
2014-09-10  3:27 ` [PATCH net-next 0/3] net: enable GRO for IPIP and SIT David Miller
2014-09-10  4:04   ` Tom Herbert
2014-09-10  4:32     ` David Miller

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).