BUG/MINOR: stconn: Report read activity on non-indep streams for partial sends

Partial sends is an activity, not a full blocking. Thus a read activity must
be reported for non-independent stream. It is especially important for very
congested stream where full sends are uncommon.

This patch must be backported to 2.8.
This commit is contained in:
Christopher Faulet 2023-11-17 15:34:23 +01:00
parent 7676a2cdf6
commit 5ed101e09c
1 changed files with 7 additions and 1 deletions

View File

@ -183,11 +183,17 @@ static forceinline void sc_ep_report_read_activity(struct stconn *sc)
/* Report a send blocked. This function sets <fsb> to now_ms if it was not
* already set or if something was sent (to renew <fsb>).
*
* if somehting was sent (<did_send> != 0), a read activity is also reported for
* non-independent stream.
*/
static forceinline void sc_ep_report_blocked_send(struct stconn *sc, int did_send)
{
if (did_send || !tick_isset(sc->sedesc->fsb))
if (did_send || !tick_isset(sc->sedesc->fsb)) {
sc->sedesc->fsb = now_ms;
if (did_send && !(sc->flags & SC_FL_INDEP_STR))
sc_ep_report_read_activity(sc);
}
}
/* Report a send activity by setting <fsb> to TICK_ETERNITY.