|
From: Jon M. <jm...@re...> - 2020-10-12 23:39:34
|
Hi Hoang,
I apologize for not paying enough attention to this problem until now.
See below.
On 9/30/20 9:43 PM, Hoang Huu Le wrote:
> In commit 16ad3f4022bb
> ("tipc: introduce variable window congestion control"), we applied
> the Reno algorithm to select window size from minimum window to the
> configured maximum window for unicast link.
>
> However, when setting window variable we do not specific to unicast link.
> This lead to the window for broadcast link had effect as unexpect value
> (i.e the window size is constantly 32).
>
> We fix this by updating the window for broadcast as its configuration.
>
> Signed-off-by: Hoang Huu Le <hoa...@de...>
> ---
> net/tipc/bcast.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/net/tipc/bcast.c b/net/tipc/bcast.c
> index 940d176e0e87..abac9443b4d9 100644
> --- a/net/tipc/bcast.c
> +++ b/net/tipc/bcast.c
> @@ -585,7 +585,7 @@ static int tipc_bc_link_set_queue_limits(struct net *net, u32 max_win)
> if (max_win > TIPC_MAX_LINK_WIN)
> return -EINVAL;
> tipc_bcast_lock(net);
> - tipc_link_set_queue_limits(l, BCLINK_WIN_MIN, max_win);
> + tipc_link_set_queue_limits(l, max_win, max_win);
I think this is dangerous. The broadcast link puts a much higher stress
on the switch, and the risk of massive packet loss with ditto
retransmissions is very high.
A safer bet to stay with a fix window of 50 for now, to solve the
problem you have at sites, and then you can possibly experiment with a
variable window later.
If it gives significant higher throughput it might be worthwhile trying,
but I am pretty sure that e.g. the base for calculating ssthresh (300)
is too big.
///jon
> tipc_bcast_unlock(net);
> return 0;
> }
|