netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* tcp: add NV congestion control
@ 2015-08-25 23:33 Lawrence Brakmo
  2015-08-25 23:33 ` [RFC PATCH v6 net-next 1/4] tcp: replace cnt & rtt with struct in pkts_acked() Lawrence Brakmo
                   ` (4 more replies)
  0 siblings, 5 replies; 14+ messages in thread
From: Lawrence Brakmo @ 2015-08-25 23:33 UTC (permalink / raw)
  To: netdev
  Cc: Kernel Team, Neal Cardwell, Eric Dumazet, Yuchung Cheng,
	Stephen Hemminger, Kenneth Klette Jonassen

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@fb.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(-)

^ permalink raw reply	[flat|nested] 14+ messages in thread
* Re: tcp: add NV congestion control
@ 2015-08-27  5:52 Lawrence Brakmo
  0 siblings, 0 replies; 14+ messages in thread
From: Lawrence Brakmo @ 2015-08-27  5:52 UTC (permalink / raw)
  To: Lawrence Brakmo, netdev
  Cc: Kernel Team, Neal Cardwell, Eric Dumazet, Yuchung Cheng,
	Stephen Hemminger, Kenneth Klette Jonassen

The updated NV document with the new experiments and a table with all the
experimental results are now available at
(http://www.brakmo.org/networking/tcp-nv/TCPNV.html).

- Lawrence
 

On 8/25/15, 4:33 PM, "Lawrence Brakmo" <brakmo@fb.com> wrote:

>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@fb.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(-)

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

end of thread, other threads:[~2015-08-27 23:28 UTC | newest]

Thread overview: 14+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-08-25 23:33 tcp: add NV congestion control Lawrence Brakmo
2015-08-25 23:33 ` [RFC PATCH v6 net-next 1/4] tcp: replace cnt & rtt with struct in pkts_acked() Lawrence Brakmo
2015-08-27 21:42   ` Yuchung Cheng
2015-08-25 23:33 ` [RFC PATCH v6 net-next 2/4] tcp: refactor struct tcp_skb_cb Lawrence Brakmo
2015-08-27 21:53   ` Yuchung Cheng
2015-08-25 23:33 ` [RFC PATCH v6 net-next 3/4] tcp: add in_flight to tcp_skb_cb Lawrence Brakmo
2015-08-27 22:00   ` Yuchung Cheng
2015-08-27 22:44     ` Lawrence Brakmo
2015-08-27 22:54       ` Yuchung Cheng
2015-08-27 22:57         ` Yuchung Cheng
2015-08-27 23:27           ` Lawrence Brakmo
2015-08-25 23:33 ` [RFC PATCH v6 net-next 4/4] tcp: add NV congestion control Lawrence Brakmo
2015-08-26  0:19 ` David Miller
  -- strict thread matches above, loose matches on Subject: below --
2015-08-27  5:52 Lawrence Brakmo

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