[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date: Mon, 4 Apr 2011 05:02:52 +0200
From: Arnd Bergmann <arnd@...db.de>
To: "Thilo-Alexander Ginkel" <thilo@...kel.com>
Cc: linux-kernel@...r.kernel.org
Subject: Re: Soft lockup during suspend since ~2.6.36
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
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists