From: Shawn Bohrer <shawn.bohrer@gmail.com>
To: David Miller <davem@davemloft.net>
Cc: netdev <netdev@vger.kernel.org>,
tomk@rgmadvisors.com, Eric Dumazet <eric.dumazet@gmail.com>,
Shawn Bohrer <sbohrer@rgmadvisors.com>
Subject: [PATCH net-next v2 0/3] Improve UDP multicast receive latency
Date: Fri, 4 Oct 2013 14:28:13 -0500 [thread overview]
Message-ID: <1380914896-24754-1-git-send-email-shawn.bohrer@gmail.com> (raw)
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
next reply other threads:[~2013-10-04 19:28 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-10-04 19:28 Shawn Bohrer [this message]
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
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=1380914896-24754-1-git-send-email-shawn.bohrer@gmail.com \
--to=shawn.bohrer@gmail.com \
--cc=davem@davemloft.net \
--cc=eric.dumazet@gmail.com \
--cc=netdev@vger.kernel.org \
--cc=sbohrer@rgmadvisors.com \
--cc=tomk@rgmadvisors.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 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).