lkml.org 
[lkml]   [2009]   [Mar]   [20]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    SubjectRe: [PATCH 0/5] [GIT PULL] updates for tip/tracing/ftrace
    On Fri, Mar 20, 2009 at 08:27:21PM +0100, Ingo Molnar wrote:
    >
    > * Paul E. McKenney <paulmck@linux.vnet.ibm.com> wrote:
    >
    > > On Fri, Mar 20, 2009 at 07:38:49PM +0100, Ingo Molnar wrote:
    > > >
    > > > * Ingo Molnar <mingo@elte.hu> 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);




    \
     
     \ /
      Last update: 2009-03-20 20:49    [W:0.026 / U:92.312 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site