From: Florian Westphal <[email protected]>
Date: Thu, 17 Nov 2016 13:56:51 +0100
> The undo_cwnd fallback in the stack doubles cwnd based on ssthresh,
> which un-does reno halving behaviour.
>
> It seems more appropriate to let congctl algorithms pair .ssthresh
> and .undo_cwnd properly. Add a 'tcp_reno_undo_cwnd' function and wire it
> up for all congestion algorithms that used to rely on the fallback.
>
> highspeed, illinois, scalable, veno and yeah use 'reno undo' while their
> .ssthresh implementation doesn't halve the slowstart threshold, this
> might point to similar issue as the one fixed for dctcp in
> ce6dd23329b1e ("dctcp: avoid bogus doubling of cwnd after loss").
>
> Cc: Eric Dumazet <[email protected]>
> Cc: Yuchung Cheng <[email protected]>
> Cc: Neal Cardwell <[email protected]>
> Signed-off-by: Florian Westphal <[email protected]>
If you really suspect that highspeed et al. need to implement their own
undo_cwnd instead of using the default reno fallback, I would really
rather that this gets either fixed or explicitly marked as likely wrong
(in an "XXX" comment or similar).
Otherwise nobody is going to remember this down the road.