lkml.org 
[lkml]   [2015]   [Feb]   [3]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [PATCH] mm/swapfile.c: use spin_lock_bh with swap_lock to avoid deadlocks
    On Mon 02-02-15 18:25:28, pasi.sjoholm@jolla.com wrote:
    > From: Pasi Sjöholm <pasi.sjoholm@jollamobile.com>
    >
    > It is possible to get kernel in deadlock-state if swap_lock is not locked
    > with spin_lock_bh by calling si_swapinfo() simultaneously through
    > timer_function and registered vm shinker callback-function.
    >
    > BUG: spinlock recursion on CPU#0, main/2447
    > lock: swap_lock+0x0/0x10, .magic: dead4ead, .owner: main/2447, .owner_cpu: 0
    > [<c010b938>] (unwind_backtrace+0x0/0x11c) from [<c03e9be0>] (do_raw_spin_lock+0x48/0x154)
    > [<c03e9be0>] (do_raw_spin_lock+0x48/0x154) from [<c0226e10>] (si_swapinfo+0x10/0x90)
    > [<c0226e10>] (si_swapinfo+0x10/0x90) from [<c04d7e18>] (timer_function+0x24/0x258)

    Who is calling si_swapinfo from timer_function? AFAICS the vanilla
    kernel doesn't do that. Or am I missing something?
    --
    Michal Hocko
    SUSE Labs


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