Thread (11 messages) flat view 11 messages, 8 authors, 2015-10-17

Re: Soft lockup issue in Linux 4.1.9

From: Thomas Gleixner <hidden>
Date: 2015-10-02 20:05:32
Also in: lkml, stable

On Thu, 1 Oct 2015, Eric Dumazet wrote:
On Thu, Oct 1, 2015 at 4:43 AM, Holger Hoffstätte
[off-list ref] wrote:
quoted
On 10/01/15 13:29, Eric Dumazet wrote:
quoted
quoted
commit 83fccfc3940c4a2db90fd7e7079f5b465cd8c6af
Author: Eric Dumazet [off-list ref]
Date:   Thu Aug 13 15:44:51 2015 -0700

    inet: fix potential deadlock in reqsk_queue_unlink()

    When replacing del_timer() with del_timer_sync(), I introduced
    a deadlock condition :

    reqsk_queue_unlink() is called from inet_csk_reqsk_queue_drop()

    inet_csk_reqsk_queue_drop() can be called from many contexts,
    one being the timer handler itself (reqsk_timer_handler()).

    In this case, del_timer_sync() loops forever.

    Simple fix is to test if timer is pending.

    Fixes: 2235f2ac75fd ("inet: fix races with reqsk timers")
    Signed-off-by: Eric Dumazet [off-list ref]
    Signed-off-by: David S. Miller [off-list ref]
Whohoo! It applies/builds cleanly to 4.1.10-rc1 and is running as
we speak. Let's hope that this fixes the lockups.
It definitely should help !
What makes sure, that the timer cannot be readded while that timer
callback is running?

Thanks,

	tglx
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help