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

From: Ingo Molnar
Date: Fri Mar 20 2009 - 15:54:52 EST



* Frederic Weisbecker <fweisbec@xxxxxxxxx> wrote:

> 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);

i dont have a reproducer right now. Can you trigger it with latest
-tip, which has this commit included:

04cb9ac: rcu: rcu_barrier VS cpu_hotplug: Ensure callbacks in dead cpu are migrated to o

?

Ingo
--
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/