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:
Frédéric Lécaille 2023-04-02 10:49:35 +02:00
parent db54847212
commit de2ba8640b

View File

@ -38,6 +38,7 @@ static void quic_cc_cubic_reset(struct quic_cc *cc)
{
struct cubic *c = quic_cc_priv(cc);
TRACE_ENTER(QUIC_EV_CONN_CC, cc->qc);
cc->algo->state = QUIC_CC_ST_SS;
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->tcp_wnd = 0;
c->recovery_start_time = 0;
TRACE_LEAVE(QUIC_EV_CONN_CC, cc->qc);
}
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;
uint64_t delta, diff;
TRACE_ENTER(QUIC_EV_CONN_CC, cc->qc);
if (!c->epoch_start) {
c->epoch_start = now_ms;
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.
*/
quic_cc_cubic_reset(cc);
return;
goto leave;
}
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;
leave:
TRACE_LEAVE(QUIC_EV_CONN_CC, cc->qc);
}
static void quic_cc_cubic_slow_start(struct quic_cc *cc)
{
TRACE_ENTER(QUIC_EV_CONN_CC, cc->qc);
quic_cc_cubic_reset(cc);
TRACE_LEAVE(QUIC_EV_CONN_CC, cc->qc);
}
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);
/* Current cwnd as number of packets */
TRACE_ENTER(QUIC_EV_CONN_CC, cc->qc);
c->epoch_start = 0;
c->recovery_start_time = now_ms;
/* 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;
c->ssthresh = QUIC_MAX(path->cwnd, path->min_cwnd);
cc->algo->state = QUIC_CC_ST_RP;
TRACE_LEAVE(QUIC_EV_CONN_CC, cc->qc, NULL, cc);
}
/* 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);
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));