lkml.org 
[lkml]   [2015]   [Sep]   [2]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
SubjectRe: [PATCH] tipc: fix stall during bclink wakeup procedure
From
From: Kolmakov Dmitriy <kolmakov.dmitriy@huawei.com>
Date: Wed, 2 Sep 2015 15:33:00 +0000

> If an attempt to wake up users of broadcast link is made when there
> is no enough place in send queue than it may hang up inside the
> tipc_sk_rcv() function since the loop breaks only after the wake up
> queue becomes empty. This can lead to complete CPU stall with the
> following message generated by RCU:

I don't understand how it can loop forever.

It should either successfully deliver each packet to the socket,
or respond with a TIPC_ERR_OVERLOAD.

In both cases, the SKB is dequeued from the queue and forward
progress is made.

If there really is a problem somewhere in here, then two things:

1) You need to describe exactly the sequence of tests and conditions
that lead to the endless loop in this code, because I cannot see
it.

2) I suspect the fix is more likely to be appropriate in tipc_sk_rcv()
or similar, rather than creating a dummy queue to workaround it's
behavior.

Thanks.


\
 
 \ /
  Last update: 2015-09-03 02:01    [W:0.078 / U:0.192 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site