mirror of
https://git.haproxy.org/git/haproxy.git/
synced 2025-11-23 03:41:01 +01:00
MINOR: quic: Add missing traces in cubic algorithm implementation
May be useful to debug. Must be backported to 2.7 and 2.6.
This commit is contained in:
parent
db54847212
commit
de2ba8640b
@ -38,6 +38,7 @@ static void quic_cc_cubic_reset(struct quic_cc *cc)
|
|||||||
{
|
{
|
||||||
struct cubic *c = quic_cc_priv(cc);
|
struct cubic *c = quic_cc_priv(cc);
|
||||||
|
|
||||||
|
TRACE_ENTER(QUIC_EV_CONN_CC, cc->qc);
|
||||||
cc->algo->state = QUIC_CC_ST_SS;
|
cc->algo->state = QUIC_CC_ST_SS;
|
||||||
|
|
||||||
c->ssthresh = QUIC_CC_INFINITE_SSTHESH;
|
c->ssthresh = QUIC_CC_INFINITE_SSTHESH;
|
||||||
@ -49,6 +50,7 @@ static void quic_cc_cubic_reset(struct quic_cc *cc)
|
|||||||
c->last_w_max = 0;
|
c->last_w_max = 0;
|
||||||
c->tcp_wnd = 0;
|
c->tcp_wnd = 0;
|
||||||
c->recovery_start_time = 0;
|
c->recovery_start_time = 0;
|
||||||
|
TRACE_LEAVE(QUIC_EV_CONN_CC, cc->qc);
|
||||||
}
|
}
|
||||||
|
|
||||||
static int quic_cc_cubic_init(struct quic_cc *cc)
|
static int quic_cc_cubic_init(struct quic_cc *cc)
|
||||||
@ -100,6 +102,7 @@ static inline void quic_cubic_update(struct quic_cc *cc, uint32_t acked)
|
|||||||
uint32_t t, target, inc, inc_diff;
|
uint32_t t, target, inc, inc_diff;
|
||||||
uint64_t delta, diff;
|
uint64_t delta, diff;
|
||||||
|
|
||||||
|
TRACE_ENTER(QUIC_EV_CONN_CC, cc->qc);
|
||||||
if (!c->epoch_start) {
|
if (!c->epoch_start) {
|
||||||
c->epoch_start = now_ms;
|
c->epoch_start = now_ms;
|
||||||
if (c->last_w_max <= path->cwnd) {
|
if (c->last_w_max <= path->cwnd) {
|
||||||
@ -133,7 +136,7 @@ static inline void quic_cubic_update(struct quic_cc *cc, uint32_t acked)
|
|||||||
* control algorithm reset.
|
* control algorithm reset.
|
||||||
*/
|
*/
|
||||||
quic_cc_cubic_reset(cc);
|
quic_cc_cubic_reset(cc);
|
||||||
return;
|
goto leave;
|
||||||
}
|
}
|
||||||
|
|
||||||
delta = path->mtu * ((CUBIC_C * diff * diff * diff) >> (10 + 3 * TIME_SCALE_FACTOR_SHIFT));
|
delta = path->mtu * ((CUBIC_C * diff * diff * diff) >> (10 + 3 * TIME_SCALE_FACTOR_SHIFT));
|
||||||
@ -165,11 +168,15 @@ static inline void quic_cubic_update(struct quic_cc *cc, uint32_t acked)
|
|||||||
}
|
}
|
||||||
|
|
||||||
path->cwnd += inc;
|
path->cwnd += inc;
|
||||||
|
leave:
|
||||||
|
TRACE_LEAVE(QUIC_EV_CONN_CC, cc->qc);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void quic_cc_cubic_slow_start(struct quic_cc *cc)
|
static void quic_cc_cubic_slow_start(struct quic_cc *cc)
|
||||||
{
|
{
|
||||||
|
TRACE_ENTER(QUIC_EV_CONN_CC, cc->qc);
|
||||||
quic_cc_cubic_reset(cc);
|
quic_cc_cubic_reset(cc);
|
||||||
|
TRACE_LEAVE(QUIC_EV_CONN_CC, cc->qc);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void quic_enter_recovery(struct quic_cc *cc)
|
static void quic_enter_recovery(struct quic_cc *cc)
|
||||||
@ -178,6 +185,7 @@ static void quic_enter_recovery(struct quic_cc *cc)
|
|||||||
struct cubic *c = quic_cc_priv(cc);
|
struct cubic *c = quic_cc_priv(cc);
|
||||||
/* Current cwnd as number of packets */
|
/* Current cwnd as number of packets */
|
||||||
|
|
||||||
|
TRACE_ENTER(QUIC_EV_CONN_CC, cc->qc);
|
||||||
c->epoch_start = 0;
|
c->epoch_start = 0;
|
||||||
c->recovery_start_time = now_ms;
|
c->recovery_start_time = now_ms;
|
||||||
/* Fast convergence */
|
/* Fast convergence */
|
||||||
@ -191,6 +199,7 @@ static void quic_enter_recovery(struct quic_cc *cc)
|
|||||||
path->cwnd = (CUBIC_BETA * path->cwnd) >> CUBIC_BETA_SCALE_SHIFT;
|
path->cwnd = (CUBIC_BETA * path->cwnd) >> CUBIC_BETA_SCALE_SHIFT;
|
||||||
c->ssthresh = QUIC_MAX(path->cwnd, path->min_cwnd);
|
c->ssthresh = QUIC_MAX(path->cwnd, path->min_cwnd);
|
||||||
cc->algo->state = QUIC_CC_ST_RP;
|
cc->algo->state = QUIC_CC_ST_RP;
|
||||||
|
TRACE_LEAVE(QUIC_EV_CONN_CC, cc->qc, NULL, cc);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Congestion slow-start callback. */
|
/* Congestion slow-start callback. */
|
||||||
@ -252,7 +261,7 @@ static void quic_cc_cubic_rp_cb(struct quic_cc *cc, struct quic_cc_event *ev)
|
|||||||
struct cubic *c = quic_cc_priv(cc);
|
struct cubic *c = quic_cc_priv(cc);
|
||||||
|
|
||||||
TRACE_ENTER(QUIC_EV_CONN_CC, cc->qc, ev);
|
TRACE_ENTER(QUIC_EV_CONN_CC, cc->qc, ev);
|
||||||
TRACE_PROTO("CC cubic", QUIC_EV_CONN_CC, cc->qc, ev);
|
TRACE_PROTO("CC cubic", QUIC_EV_CONN_CC, cc->qc, ev, cc);
|
||||||
|
|
||||||
BUG_ON(!tick_isset(c->recovery_start_time));
|
BUG_ON(!tick_isset(c->recovery_start_time));
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user