Messages in this thread | | | From | Arnd Bergmann <> | Subject | Re: Soft lockup during suspend since ~2.6.36 | Date | Mon, 4 Apr 2011 05:02:52 +0200 |
| |
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.
Yet another idea would be to set /sys/kernel/printk_delay so that the oops gets printed slower.
Arnd
| |