lkml.org 
[lkml]   [2011]   [Apr]   [4]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    From
    Date
    SubjectRe: Soft lockup during suspend since ~2.6.36
    On Mon, Apr 4, 2011 at 05:02, Arnd Bergmann <arnd@arndb.de> wrote:
    > On Sunday 03 April 2011, Thilo-Alexander Ginkel wrote:
    >> Transcript:
    >> | RIP: _raw_spin_unlock_irqrestore
    >> | Call Stack:
    >> |   _set_cpus_allowed_ptr
    >> |   worker_maybe_bind_and_lock
    >> |   rescuer_thread
    >> |   rescuer_thread
    >> |   kernel_thread_helper
    >> |   kthread
    >> |   kernel_thread_helper
    >> |   kthread
    >>
    >> After some more time, the following backtrace is printed:
    >>   https://secure.tgbyte.de/dropbox/ueph3Ohm-3.jpg
    >>
    >> Transcript:
    >> | RIP: worker_maybe_bind_and_lock
    >> | Call Stack:
    >> |   rescuer_thread
    >> |   rescuer_thread
    >> |   kernel_thread_helper
    >> |   kthread
    >> |   kernel_thread_helper
    >> |   kthread
    >>
    >> From then on these two backtraces are printed in an alternating fashion.
    >>
    >> Unfortunately, the top of the output is missing as it does not fit on
    >> screen (does someone know an even smaller console font?), but I assume
    >> it's the deadlock detection.
    >
    > The interesting thing is that the backtrace is from unlock, not from lock,
    > so it can't really be a deadlock. However, the _raw_spin_unlock_irqrestore
    > function calls debug_spin_unlock(), which does a few sanity check. Maybe
    > one of those got triggered.
    >
    > The easiest way to get the full output is usually to attach a serial
    > NULL modem cable and redirect the console to that, so you can get the
    > output on another machine. Another idea would be to modify the
    > show_registers function in arch/x86/kernel/dumpstack_64.c so that
    > it prints less data.

    Unfortunately, the output via a serial console becomes garbled after
    "Entering mem sleep", so I went for patching dumpstack_64.c and a
    couple of other source files to reduce the verbosity. I hope not to
    have stripped any essential information. The result is available in
    these pictures:
    https://secure.tgbyte.de/dropbox/IeZalo4t-1.jpg
    https://secure.tgbyte.de/dropbox/IeZalo4t-2.jpg

    For both traces, the printed error message reads: "BUG: soft lockup -
    CPU#3 stuck for 67s! [kblockd:28]"

    (After a bit of Googling I understand that a soft lockup is probably
    different from a deadlock - please correct me if that assumption is
    wrong)

    > Yet another idea would be to set /sys/kernel/printk_delay so that the
    > oops gets printed slower.

    Hm, that file does not exist on my machine. Does it need a special
    compile-time config option to be enabled?

    Regards,
    Thilo
    --
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/

    \
     
     \ /
      Last update: 2011-04-04 15:59    [W:0.024 / U:58.772 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site