netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH net-next v2 0/3] Improve UDP multicast receive latency
@ 2013-10-04 19:28 Shawn Bohrer
  2013-10-04 19:28 ` [PATCH net-next v2 1/3] udp: Only allow busy read/poll on connected sockets Shawn Bohrer
                   ` (2 more replies)
  0 siblings, 3 replies; 8+ messages in thread
From: Shawn Bohrer @ 2013-10-04 19:28 UTC (permalink / raw)
  To: David Miller; +Cc: netdev, tomk, Eric Dumazet, Shawn Bohrer

From: Shawn Bohrer <sbohrer@rgmadvisors.com>

The removal of the routing cache in 3.6 had impacted the latency of our
UDP multicast workload.  This patch series brings down the latency to
what we were seeing with 3.4.

Patch 1 "udp: Only allow busy read/poll on connected sockets" is mostly
done for correctness and because it allows unifying the unicast and
multicast paths when a socket is found in early demux.  It can also
improve latency for a connected multicast socket if busy read/poll is
used.

Patches 2&3 remove the fib lookups and restore latency for our workload
to the pre 3.6 levels.

Benchmark results from a netperf UDP_RR test:
v3.12-rc3-447-g40dc9ab kernel   87961.22 transactions/s
v3.12-rc3-447-g40dc9ab + series 90587.62 transactions/s

Benchmark results from a fio 1 byte UDP multicast pingpong test
(Multicast one way unicast response):
v3.12-rc3-447-g40dc9ab kernel   12.97us RTT
v3.12-rc3-447-g40dc9ab + series 12.48us RTT

v2 Changes:

* Unicast UDP early demux now requires an exact socket match and only
tests first socket in UDP hash chain.
* ipv4_pktinfo_prepare() now takes a const struct sock*

Shawn Bohrer (3):
  udp: Only allow busy read/poll on connected sockets
  udp: Add udp early demux
  net: ipv4 only populate IP_PKTINFO when needed

 include/net/ip.h       |    2 +-
 include/net/sock.h     |    2 +-
 include/net/udp.h      |    1 +
 net/ipv4/af_inet.c     |    1 +
 net/ipv4/ip_sockglue.c |    5 +-
 net/ipv4/raw.c         |    2 +-
 net/ipv4/udp.c         |  195 ++++++++++++++++++++++++++++++++++++++++++-----
 net/ipv6/udp.c         |    5 +-
 8 files changed, 185 insertions(+), 28 deletions(-)

-- 
1.7.7.6

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

end of thread, other threads:[~2013-10-04 21:20 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-10-04 19:28 [PATCH net-next v2 0/3] Improve UDP multicast receive latency Shawn Bohrer
2013-10-04 19:28 ` [PATCH net-next v2 1/3] udp: Only allow busy read/poll on connected sockets Shawn Bohrer
2013-10-04 19:28 ` [PATCH net-next v2 2/3] udp: Add udp early demux Shawn Bohrer
2013-10-04 20:02   ` Eric Dumazet
2013-10-04 21:05     ` Shawn Bohrer
2013-10-04 21:16       ` Eric Dumazet
2013-10-04 19:28 ` [PATCH net-next v2 3/3] net: ipv4 only populate IP_PKTINFO when needed Shawn Bohrer
2013-10-04 21:20   ` Eric Dumazet

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).