aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/core/ext/transport/chttp2/transport/flow_control.cc
diff options
context:
space:
mode:
authorGravatar Yuchen Zeng <zyc@google.com>2017-11-14 11:39:33 -0800
committerGravatar Yuchen Zeng <zyc@google.com>2017-11-14 15:52:48 -0800
commit68ade7471c047d0aac34f04c91e3ed5e319a32f1 (patch)
tree61a72f6e697a2318b766110502e3ce97ab576667 /src/core/ext/transport/chttp2/transport/flow_control.cc
parentabfb4f8d5bdcb6f0b81e389d321c58bf03485a68 (diff)
Limit the imput dt of PID to 100ms
Diffstat (limited to 'src/core/ext/transport/chttp2/transport/flow_control.cc')
-rw-r--r--src/core/ext/transport/chttp2/transport/flow_control.cc6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/core/ext/transport/chttp2/transport/flow_control.cc b/src/core/ext/transport/chttp2/transport/flow_control.cc
index 64f6b3c917..f92e003405 100644
--- a/src/core/ext/transport/chttp2/transport/flow_control.cc
+++ b/src/core/ext/transport/chttp2/transport/flow_control.cc
@@ -310,7 +310,11 @@ double TransportFlowControl::SmoothLogBdp(grpc_exec_ctx* exec_ctx,
double value) {
grpc_millis now = grpc_exec_ctx_now(exec_ctx);
double bdp_error = value - pid_controller_.last_control_value();
- const double dt = (double)(now - last_pid_update_) * 1e-3;
+ double dt = (double)(now - last_pid_update_) * 1e-3;
+ // Limit dt to 100ms
+ if (dt > 0.1) {
+ dt = 0.1;
+ }
last_pid_update_ = now;
return pid_controller_.Update(bdp_error, dt);
}