[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <1440545634-3901299-1-git-send-email-brakmo@fb.com>
Date: Tue, 25 Aug 2015 16:33:50 -0700
From: Lawrence Brakmo <brakmo@...com>
To: netdev <netdev@...r.kernel.org>
CC: Kernel Team <kernel-team@...com>,
Neal Cardwell <ncardwell@...gle.com>,
Eric Dumazet <eric.dumazet@...il.com>,
Yuchung Cheng <ycheng@...gle.com>,
Stephen Hemminger <stephen@...workplumber.org>,
Kenneth Klette Jonassen <kennetkl@....uio.no>
Subject: tcp: add NV congestion control
Changes from v5: cleaning of NV code, changing some default parameters
I've run more extensive tests, I'm working on updating the NV website
(http://www.brakmo.org/networking/tcp-nv/TCPNV.html) should be updated
by tomorrow (8/26).
The updated tests include Reno, Cubic, NV and CDG and include more types
of traffic. Overview of results:
1) NV has a little lower throughput (2-3% less) with small number of flows
as compared to Reno, Cubic and CDG
2) NV is less fair with few flows but becomes more fair with more flows
3) Less losses with NV (none in many cases) as compared to all others.
One exception is when things get very congested (64 flows into one
server), NV has 50% more losses than CDG, Cubic has 1.8x to 10x more
losses than CDG. Reno has about the same losses as CDG.
4) In mixed traffic (1M and 10K RPCs), 10K flows achieve much higher
average throughput with NV than with the others (which are
very similar). In one example, 2 clients sending 1M and 10K to 2
servers, with NV 10K flows average 1Gbps and 1M flows 3.7Gbps,
whereas they average about 226Mbps and 4.4Gbps for Reno, Cubic and
CDG. They all have similar link utilization.
Consists of the following patches:
[RFC PATCH v6 net-next 1/4] tcp: replace cnt & rtt with struct in
[RFC PATCH v6 net-next 2/4] tcp: refactor struct tcp_skb_cb
[RFC PATCH v6 net-next 3/4] tcp: add in_flight to tcp_skb_cb
[RFC PATCH v6 net-next 4/4] tcp: add NV congestion control
Signed-off-by: Lawrence Brakmo <brakmo@...com>
include/net/tcp.h | 20 ++-
net/ipv4/Kconfig | 16 ++
net/ipv4/Makefile | 1 +
net/ipv4/tcp_bic.c | 6 +-
net/ipv4/tcp_cdg.c | 14 +-
net/ipv4/tcp_cubic.c | 6 +-
net/ipv4/tcp_htcp.c | 10 +-
net/ipv4/tcp_illinois.c | 20 +--
net/ipv4/tcp_input.c | 10 +-
net/ipv4/tcp_lp.c | 6 +-
net/ipv4/tcp_nv.c | 489 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
net/ipv4/tcp_output.c | 4 +-
net/ipv4/tcp_vegas.c | 6 +-
net/ipv4/tcp_vegas.h | 2 +-
net/ipv4/tcp_veno.c | 7 +-
net/ipv4/tcp_westwood.c | 7 +-
net/ipv4/tcp_yeah.c | 7 +-
17 files changed, 580 insertions(+), 51 deletions(-)
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists