* Interpreting call trace
@ 2011-04-06 12:56 Daniel Baluta
2011-04-06 16:47 ` Michael Blizek
` (2 more replies)
0 siblings, 3 replies; 8+ messages in thread
From: Daniel Baluta @ 2011-04-06 12:56 UTC (permalink / raw)
To: kernelnewbies
Hello,
I have the following stack trace:
[3992.172/0] BUG: soft lockup - CPU#0 stuck for 61s! [events/0:39]
[ 3992.215/0] Pid: 39, comm: events/0 Tainted: P W 2.6.32 #1 X8DTT-H
[ 3992.222/0] RIP: 0010:[<ffffffff8115f989>] [<ffffffff8115f989>]
__write_lock_failed+0x9/0x20
[ 3992.231/0] RSP: 0018:ffff880028203908 EFLAGS: 00000287
[ 3992.236/0] RAX: ffff88063ce0bfd8 RBX: ffff880028203920 RCX: ffffffff814e1b00
[ 3992.243/0] RDX: ffff8800282144e0 RSI: ffff880028203abc RDI: ffffffff814e1b04
[ 3992.250/0] RBP: ffffffff8100c6f3 R08: 0000000000000004 R09: ffff880028203ab0
[ 3992.257/0] R10: ffff88061851fa08 R11: 0000000000000000 R12: ffff880028203880
[ 3992.264/0] R13: ffff88060404f800 R14: ffffffff814e1b04 R15: ffffffff8101fd88
[ 3992.272/0] FS: 0000000000000000(0000) GS:ffff880028200000(0000)
knlGS:0000000000000000
[ 3992.280/0] CS: 0010 DS: 0018 ES: 0018 CR0: 000000008005003b
[ 3992.286/0] CR2: 00007f9cc9fb9000 CR3: 0000000001001000 CR4: 00000000000006f0
[ 3992.293/0] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
[ 3992.300/0] DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
[ 3992.307/0] Call Trace:
[ 3992.309/0] <IRQ> [<ffffffff81374e12>] ? _write_lock_bh+0x22/0x30
[ 3992.316/0] [<ffffffff81297751>] ? neigh_create+0x2f1/0x6b0
[ 3992.321/0] [<ffffffff81374f00>] ? _read_unlock_bh+0x10/0x20
[ 3992.327/0] [<ffffffff81296401>] ? neigh_lookup+0xd1/0xf0
[ 3992.333/0] [<ffffffff81297b96>] ? neigh_event_ns+0x86/0xc0
[ 3992.338/0] [<ffffffff812f2cdb>] ? arp_process+0x9fb/0xbf0
[ 3992.344/0] [<ffffffff812f2ffc>] ? arp_rcv+0x11c/0x130
How could one interpret this?
For example having:
[ 3992.316/0] [<ffffffff81297751>] ? neigh_create+0x2f1/0x6b0
[ 3992.321/0] [<ffffffff81374f00>] ? _read_unlock_bh+0x10/0x20
means that _read_unlock_bh has been called & finished ? Or it has been
interrupted by
next function in trace (neigh_create).
Any other info about interpreting call traces are welcomed.
thanks,
Daniel.
^ permalink raw reply [flat|nested] 8+ messages in thread* Interpreting call trace
2011-04-06 12:56 Interpreting call trace Daniel Baluta
@ 2011-04-06 16:47 ` Michael Blizek
2011-04-06 17:32 ` Mulyadi Santosa
2011-04-07 3:10 ` Kaustubh Ashtekar
2 siblings, 0 replies; 8+ messages in thread
From: Michael Blizek @ 2011-04-06 16:47 UTC (permalink / raw)
To: kernelnewbies
Hi!
On 15:56 Wed 06 Apr , Daniel Baluta wrote:
...
> For example having:
> [ 3992.316/0] [<ffffffff81297751>] ? neigh_create+0x2f1/0x6b0
> [ 3992.321/0] [<ffffffff81374f00>] ? _read_unlock_bh+0x10/0x20
>
> means that _read_unlock_bh has been called & finished ? Or it has been
> interrupted by
> next function in trace (neigh_create).
>
> Any other info about interpreting call traces are welcomed.
Usually this means that _read_unlock_bh has called neigh_create. However, this
looks very unlikely to me. So maybe there was a buffer overflow on the stack
or any other form of memory corruption.
-Michi
--
programing a layer 3+4 network protocol for mesh networks
see http://michaelblizek.twilightparadox.com
^ permalink raw reply [flat|nested] 8+ messages in thread
* Interpreting call trace
2011-04-06 12:56 Interpreting call trace Daniel Baluta
2011-04-06 16:47 ` Michael Blizek
@ 2011-04-06 17:32 ` Mulyadi Santosa
2011-04-07 3:10 ` Kaustubh Ashtekar
2 siblings, 0 replies; 8+ messages in thread
From: Mulyadi Santosa @ 2011-04-06 17:32 UTC (permalink / raw)
To: kernelnewbies
Hi Daniel...
On Wed, Apr 6, 2011 at 19:56, Daniel Baluta <daniel.baluta@gmail.com> wrote:
> Hello,
>
> I have the following stack trace:
>
> [3992.172/0] BUG: soft lockup - CPU#0 stuck for 61s! [events/0:39]
alright, so we see soft lockup here.... so that means your machine is
not entirely frozen, right?
If that's true, then I think this entire call trace try to show that
there is lock contention somewhere along the trace...very likely
something grab a lock too long in fast path...
--
regards,
Mulyadi Santosa
Freelance Linux trainer and consultant
blog: the-hydra.blogspot.com
training: mulyaditraining.blogspot.com
^ permalink raw reply [flat|nested] 8+ messages in thread
* Interpreting call trace
2011-04-06 12:56 Interpreting call trace Daniel Baluta
2011-04-06 16:47 ` Michael Blizek
2011-04-06 17:32 ` Mulyadi Santosa
@ 2011-04-07 3:10 ` Kaustubh Ashtekar
2011-04-07 8:26 ` Daniel Baluta
2 siblings, 1 reply; 8+ messages in thread
From: Kaustubh Ashtekar @ 2011-04-07 3:10 UTC (permalink / raw)
To: kernelnewbies
Hi Daniel,
On Wed, Apr 6, 2011 at 6:26 PM, Daniel Baluta <daniel.baluta@gmail.com> wrote:
> Hello,
>
> I have the following stack trace:
<snip>
> How could one interpret this?
>
> For example having:
> [ 3992.316/0] ?[<ffffffff81297751>] ? neigh_create+0x2f1/0x6b0
> [ 3992.321/0] ?[<ffffffff81374f00>] ? _read_unlock_bh+0x10/0x20
>
> means that _read_unlock_bh has been called & finished ? Or it has been
> interrupted by
> next function in trace (neigh_create).
This means that _read_unlock_bh called neigh_create. The instruction
at (_read_unlock_bh+0x10) will be executed next when the CPU returns
from the function
neigh_create.
For better understanding you can do
> gdb vmlinux
and then run
gdb> disassemble _read_unlock_bh
Then look at offset 0x10.
Kaustubh
^ permalink raw reply [flat|nested] 8+ messages in thread
* Interpreting call trace
2011-04-07 3:10 ` Kaustubh Ashtekar
@ 2011-04-07 8:26 ` Daniel Baluta
2011-04-07 9:16 ` nilesh
` (2 more replies)
0 siblings, 3 replies; 8+ messages in thread
From: Daniel Baluta @ 2011-04-07 8:26 UTC (permalink / raw)
To: kernelnewbies
> For better understanding you can do
>> gdb vmlinux
> and then run
> gdb> disassemble _read_unlock_bh
>
> Then look at offset 0x10.
Did that. Is there any way to show disassembled
output interleaved with source code?
thank you all for your answers.
Daniel.
^ permalink raw reply [flat|nested] 8+ messages in thread* Interpreting call trace
2011-04-07 8:26 ` Daniel Baluta
@ 2011-04-07 9:16 ` nilesh
2011-04-07 9:34 ` Sowmya Sridharan
2011-04-07 17:04 ` Manish Katiyar
2 siblings, 0 replies; 8+ messages in thread
From: nilesh @ 2011-04-07 9:16 UTC (permalink / raw)
To: kernelnewbies
Hi Daniel,
On Thu, 2011-04-07 at 11:26 +0300, Daniel Baluta wrote:
> > For better understanding you can do
> >> gdb vmlinux
> > and then run
> > gdb> disassemble _read_unlock_bh
> >
> > Then look at offset 0x10.
>
> Did that. Is there any way to show disassembled
> output interleaved with source code?
>
May be you can try taking the 'objdump' of vmlinux (FYI, it will be
quite big in size). Otherwise try taking objdump of specific binary
only.
#objdump -r -D -l -S <binary>
>
> thank you all for your answers.
>
> Daniel.
--
Thanks,
Nilesh
^ permalink raw reply [flat|nested] 8+ messages in thread
* Interpreting call trace
2011-04-07 8:26 ` Daniel Baluta
2011-04-07 9:16 ` nilesh
@ 2011-04-07 9:34 ` Sowmya Sridharan
2011-04-07 17:04 ` Manish Katiyar
2 siblings, 0 replies; 8+ messages in thread
From: Sowmya Sridharan @ 2011-04-07 9:34 UTC (permalink / raw)
To: kernelnewbies
> Did that. Is there any way to show disassembled
> output interleaved with source code?
>
>
objdump is the tool you should be looking for.
If you have the tool, then take an "objdump" of your entire
vmlinux(uncompressed version). Options -d, and -S will intermix source
with disassembly.
With the output, you can analyze the call trace with the functions' base
addresses and offsets.
Thanks,
Sowmya
=====-----=====-----=====
Notice: The information contained in this e-mail
message and/or attachments to it may contain
confidential or privileged information. If you are
not the intended recipient, any dissemination, use,
review, distribution, printing or copying of the
information contained in this e-mail message
and/or attachments to it are strictly prohibited. If
you have received this communication in error,
please notify us by reply e-mail or telephone and
immediately and permanently delete the message
and any attachments. Thank you
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.kernelnewbies.org/pipermail/kernelnewbies/attachments/20110407/985d1f64/attachment.html
^ permalink raw reply [flat|nested] 8+ messages in thread
* Interpreting call trace
2011-04-07 8:26 ` Daniel Baluta
2011-04-07 9:16 ` nilesh
2011-04-07 9:34 ` Sowmya Sridharan
@ 2011-04-07 17:04 ` Manish Katiyar
2 siblings, 0 replies; 8+ messages in thread
From: Manish Katiyar @ 2011-04-07 17:04 UTC (permalink / raw)
To: kernelnewbies
On Thu, Apr 7, 2011 at 1:26 AM, Daniel Baluta <daniel.baluta@gmail.com> wrote:
>> For better understanding you can do
>>> gdb vmlinux
>> and then run
>> gdb> disassemble _read_unlock_bh
>>
>> Then look at offset 0x10.
>
> Did that. Is there any way to show disassembled
> output interleaved with source code?
>
Have a look at http://kerneltrap.org/mailarchive/linux-kernel-newbies/2009/9/2/6373273/thread
>
> thank you all for your answers.
>
> Daniel.
>
> _______________________________________________
> Kernelnewbies mailing list
> Kernelnewbies at kernelnewbies.org
> http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies
>
--
Thanks -
Manish
^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2011-04-07 17:04 UTC | newest]
Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-04-06 12:56 Interpreting call trace Daniel Baluta
2011-04-06 16:47 ` Michael Blizek
2011-04-06 17:32 ` Mulyadi Santosa
2011-04-07 3:10 ` Kaustubh Ashtekar
2011-04-07 8:26 ` Daniel Baluta
2011-04-07 9:16 ` nilesh
2011-04-07 9:34 ` Sowmya Sridharan
2011-04-07 17:04 ` Manish Katiyar
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).