On Tue, 13 Oct 2020 13:18:10 +0700 Hoang Huu Le wrote: > The queue limit of the broadcast link is being calculated base on initial > MTU. However, when MTU value changed (e.g manual changing MTU on NIC > device, MTU negotiation etc.,) we do not re-calculate queue limit. > This gives throughput does not reflect with the change. > > So fix it by calling the function to re-calculate queue limit of the > broadcast link. > > Acked-by: Jon Maloy <jma...@redhat.com> > Signed-off-by: Hoang Huu Le <hoang.h...@dektech.com.au> > --- > net/tipc/bcast.c | 6 +++++- > 1 file changed, 5 insertions(+), 1 deletion(-) > > diff --git a/net/tipc/bcast.c b/net/tipc/bcast.c > index 940d176e0e87..c77fd13e2777 100644 > --- a/net/tipc/bcast.c > +++ b/net/tipc/bcast.c > @@ -108,6 +108,7 @@ static void tipc_bcbase_select_primary(struct net *net) > { > struct tipc_bc_base *bb = tipc_bc_base(net); > int all_dests = tipc_link_bc_peers(bb->link); > + int max_win = tipc_link_max_win(bb->link); > int i, mtu, prim; > > bb->primary_bearer = INVALID_BEARER_ID; > @@ -121,8 +122,11 @@ static void tipc_bcbase_select_primary(struct net *net) > continue; > > mtu = tipc_bearer_mtu(net, i); > - if (mtu < tipc_link_mtu(bb->link)) > + if (mtu < tipc_link_mtu(bb->link)) { > tipc_link_set_mtu(bb->link, mtu); > + tipc_link_set_queue_limits(bb->link, max_win, > + max_win);
Is max/max okay here? Other places seem to use BCLINK_WIN_MIN. > + } > bb->bcast_support &= tipc_bearer_bcast_support(net, i); > if (bb->dests[i] < all_dests) > continue;