From: "Stoidner, Christoph" <c.stoidner@arvero.de>
To: "paulmck@linux.vnet.ibm.com" <paulmck@linux.vnet.ibm.com>
Cc: "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>
Subject: AW: Question concerning RCU
Date: Mon, 12 Jan 2015 11:48:28 +0000 [thread overview]
Message-ID: <249b36ec1afa43a699b281a4192c6afd@EX132MBOX1A.de2.local> (raw)
In-Reply-To: <20150111202604.GC8063@linux.vnet.ibm.com>
Hi Paul,
> You got stack traces with the stall warnings, correct? If so, please look
> at them and at Documentation/RCU/stallwarn.txt and see if the kernel is
> looping somewhere inappropriate.
Yes and no. I have a stack trace, but it is not generated by a stall warning. More
precise: I can never see any stall warning. The reason is that the system freezes
when it is about to output such a warning. Instead the stack trace is generated
by gdb and JTAG hardware debugging, when freezing has occurred.
So I am not sure if there is really a CPU-stall condition or it is just a misrepresented
stall detection. However, outputting a stall warning leads to system freeze. The
warning is never seen.
> I am not familiar with the low-level ARM kernel code, but the stack below
> leads me to suspect that your kernel is interrupting itself to death or
> is improperly handling interrupts.
The stack trace must be read from bottom to top. The repetitive occurrence of
"__irq_svc () at arch/arm/kernel/entry-armv.S:202" on bottom of stack trace is
caused by the stack frame of the interrupt context. This is completely legal and
also the case in normal situations. Instead the problem is on the top of the stack
trace, in function rcu_print_task_stall(). The loop rcutree_plugin.h in line 528
never ends:
static int rcu_print_task_stall(struct rcu_node *rnp)
{
...
...
list_for_each_entry_continue(t, &rnp->blkd_tasks, rcu_node_entry) {
printk(KERN_CONT " P%d", t->pid);
ndetected++;
}
...
...
}
That means list_for_each_entry_continue () never ends since rcu_node_entry.next
seems to point to it-self but not to rnp->blkd_tasks. I have no idea how this can
happen.
One more thing: Just for testing I have now enabled CONFIG_TINY_PREEMPT_RCU.
Until now the problem has not occurred anymore. Do you have any idea what makes
the differences here?
Thanks and regards,
Christoph
next prev parent reply other threads:[~2015-01-12 11:48 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <94921a144a97457385ae95b838c3c6fa@EX132MBOX1A.de2.local>
2015-01-06 19:43 ` Paul E. McKenney
2015-01-11 11:59 ` AW: " Stoidner, Christoph
2015-01-11 20:26 ` Paul E. McKenney
2015-01-12 11:48 ` Stoidner, Christoph [this message]
2015-01-12 19:44 ` Paul E. McKenney
2015-01-14 8:38 ` AW: " Stoidner, Christoph
2015-01-14 18:21 ` Paul E. McKenney
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=249b36ec1afa43a699b281a4192c6afd@EX132MBOX1A.de2.local \
--to=c.stoidner@arvero.de \
--cc=linux-kernel@vger.kernel.org \
--cc=paulmck@linux.vnet.ibm.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®