Re: [PATCH 0/5] [GIT PULL] updates for tip/tracing/ftrace

From: Frederic Weisbecker
Date: Fri Mar 20 2009 - 15:46:34 EST


On Fri, Mar 20, 2009 at 08:27:21PM +0100, Ingo Molnar wrote:
>
> * Paul E. McKenney <paulmck@xxxxxxxxxxxxxxxxxx> wrote:
>
> > On Fri, Mar 20, 2009 at 07:38:49PM +0100, Ingo Molnar wrote:
> > >
> > > * Ingo Molnar <mingo@xxxxxxx> wrote:
> > >
> > > > > > This looks like it is RCU/stop_machine related. The CPU is
> > > > > > stuck in in stop_machine? I see that rcu_torture is running.
> > > > > > Does this go away if you turn off rcu_torture?
> > > > >
> > > > > Grasping at straws... Does Lai's rcu_barrier() fix help?
> > > >
> > > > which one is that?
> > >
> > > ok, found it. Will know in about ~24 hours whether it helps.
> >
> > http://lkml.org/lkml/2009/3/20/71 was the one I was thinking of,
> > just to double-check.
>
> Yeah - i just picked it up into tip:core/rcu.
>
> I didnt immediately connect the two things, as 'tracer self-test'
> does not lend itself to 'CPU hotplug and RCU race fix' - but indeed
> in the case of the function tracer there's a dependency due to
> stop_machine_run(). Thanks for point it out!
>
> Ingo


I've successfully triggered a crash, the problem is that I can't be sure this is
the same because I don't have a serial line on my x86-64, and the trace goes too far.
Moreover boot_delay=N make it disappear.

I can trigger it each time I boot with ftrace=function_graph and
the following patch applied:

diff --git a/kernel/rcutorture.c b/kernel/rcutorture.c
index 7c4142a..e9914a8 100644
--- a/kernel/rcutorture.c
+++ b/kernel/rcutorture.c
@@ -616,7 +616,7 @@ rcu_torture_writer(void *arg)
static DEFINE_RCU_RANDOM(rand);

VERBOSE_PRINTK_STRING("rcu_torture_writer task started");
- set_user_nice(current, 19);
+ set_user_nice(current, -1);

do {
schedule_timeout_uninterruptible(1);
@@ -736,7 +736,7 @@ rcu_torture_reader(void *arg)
struct timer_list t;

VERBOSE_PRINTK_STRING("rcu_torture_reader task started");
- set_user_nice(current, 19);
+ set_user_nice(current, -1);
if (irqreader && cur_ops->irqcapable)
setup_timer_on_stack(&t, rcu_torture_timer, 0);



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