diff options
author | Cody Peter Mello <cody.mello@joyent.com> | 2019-08-12 22:23:10 +0000 |
---|---|---|
committer | Cody Peter Mello <melloc@writev.io> | 2019-09-03 19:16:29 +0000 |
commit | 1ed9823d08fd2b08c4d4f0d9a57075899d36b295 (patch) | |
tree | 8e81dfaaaff44b4a4516a3d4bb904ed113956750 | |
parent | 391bfda4cfa65547cb06c514c00f3b9b70864abc (diff) | |
download | illumos-joyent-1ed9823d08fd2b08c4d4f0d9a57075899d36b295.tar.gz |
OS-7951 CUBIC module should react immediately to CC_RTO congestion signal
Reviewed by: Dan McDonald <danmcd@joyent.com>
Approved by: Dan McDonald <danmcd@joyent.com>
-rw-r--r-- | usr/src/uts/common/inet/cc/cc_cubic.c | 18 |
1 files changed, 7 insertions, 11 deletions
diff --git a/usr/src/uts/common/inet/cc/cc_cubic.c b/usr/src/uts/common/inet/cc/cc_cubic.c index a4b8f29e18..11c238afd8 100644 --- a/usr/src/uts/common/inet/cc/cc_cubic.c +++ b/usr/src/uts/common/inet/cc/cc_cubic.c @@ -3,6 +3,7 @@ * Copyright (c) 2010 The FreeBSD Foundation * All rights reserved. * Copyright (c) 2017 by Delphix. All rights reserved. + * Copyright 2019 Joyent, Inc. * * This software was developed by Lawrence Stewart while studying at the Centre * for Advanced Internet Architectures, Swinburne University of Technology, made @@ -296,18 +297,13 @@ cubic_cong_signal(struct cc_var *ccv, uint32_t type) case CC_RTO: /* * Grab the current time and record it so we know when the - * most recent congestion event was. Only record it when the - * timeout has fired more than once, as there is a reasonable - * chance the first one is a false alarm and may not indicate - * congestion. + * most recent congestion event was. */ - if (CCV(ccv, tcp_timer_backoff) >= 2) { - cubic_data->num_cong_events++; - cubic_data->t_last_cong = gethrtime(); - cubic_ssthresh_update(ccv); - cubic_data->max_cwnd = cwin; - CCV(ccv, tcp_cwnd) = mss; - } + cubic_data->num_cong_events++; + cubic_data->t_last_cong = gethrtime(); + cubic_ssthresh_update(ccv); + cubic_data->max_cwnd = cwin; + CCV(ccv, tcp_cwnd) = mss; break; } } |