summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCody Peter Mello <cody.mello@joyent.com>2019-08-12 22:23:10 +0000
committerCody Peter Mello <melloc@writev.io>2019-09-03 19:16:29 +0000
commit1ed9823d08fd2b08c4d4f0d9a57075899d36b295 (patch)
tree8e81dfaaaff44b4a4516a3d4bb904ed113956750
parent391bfda4cfa65547cb06c514c00f3b9b70864abc (diff)
downloadillumos-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.c18
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;
}
}