Hi Azad, Your change is ok. If there really is a connectivity problem the unicast links will eventually reset on that anyway. You can also look into how we have done this in Linux 4.18, where we made the broadcast link reset dependent on link tolerance *and* the counter. That code however very different in most aspects.
BR ///jon > -----Original Message----- > From: Azad N <[email protected]> > Sent: October 17, 2018 7:49 AM > To: [email protected] > Subject: [tipc-discussion] TIPC SoftLock Issue in bonded interface > > Hi > > > When we use TIPC with the bonded interface as the bearer, we are > frequently getting the soft lock issue. The source code of TIPC is taken from > RHEL 7.3, From our analysis, we figured out that retransmission in the > broadcast link is causing this. When the same packet is retransmitted more > than 100 times, the TIPC broadcast link is reset to the original state, In the > process, the locks are taken in a different order which is causing the > deadlock. As a Fix (kind of workaround) we removed the resetting of the link > (when a packet is retransmitted more than 100 times) from the kernel code > to avoid soft lockup issue. We would like to know, Is this the right fix, > what is > the possible side effect of this code change. If anyone here could give some > insight. It will be helpful. > > Code change:- > > diff --git a/tipc/link.c b/tipc/link.c > > index 5f2e1d2..8775b37 100644 > > --- a/tipc/link.c > > +++ b/tipc/link.c > > @@ -1510,8 +1510,13 @@ void tipc_link_retransmit(struct tipc_link *l_ptr, > struct sk_buff *buf, > > /* Detect repeated retransmit failures on unblocked bearer */ > > if (l_ptr->last_retransmitted == msg_seqno(msg)) { > > if (++l_ptr->stale_count > 100) { > > + if ((++l_ptr->stale_count % 100) == 0) { > > + pr_warn("Multiple Retransmission > failures (%d) on link <%s>\n",l_ptr->stale_count, l_ptr->name); > > + } > > + /* > > link_retransmit_failure(l_ptr, buf); > > return; > > + */ > > } > > } else { > > l_ptr->last_retransmitted = msg_seqno(msg); > > > > Regards > > _______________________________________________ > tipc-discussion mailing list > [email protected] > https://lists.sourceforge.net/lists/listinfo/tipc-discussion _______________________________________________ tipc-discussion mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/tipc-discussion
