lkml.org 
[lkml]   [2008]   [Oct]   [21]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: Lockup in tracepoint unregister in sched switch ftrace plugin
    * Steven Rostedt (rostedt@goodmis.org) wrote:
    >
    > Mathieu,
    >
    > I just downloaded the latest git repo from Linus's tree, and the
    > sched_switch start up test locks up. I traced it down to the first
    > unregister of a trace point. Here's the call path that I see.
    >
    > kernel/trace/trace.c: register_tracer
    > kernel/trace/trace_selftest.c: trace_selftest_startup_sched_switch
    > kernel/trace/trace_sched_switch.c: sched_switch_trace_ctrl_update
    > " " : stop_sched_trace
    > " " : tracing_stop_cmdline_record
    > " " : tracing_stop_sched_switch
    > " " : tracing_sched_unregister
    >
    > which calls unregister_trace_sched_switch define as macro to:
    >
    > kernel/tracepoint.c: tracepoint_probe_unregister
    > " " : remove_tracepoint
    > kernel/rcupdate.c: rcu_barrier_sched
    > " " : _rcu_barrier
    >
    > where it gets stuck at that "wait_for_completion".
    >
    > I'm not sure if, because this is a scheduler trace point that we are
    > hitting some kind of race that is preventing the wait_for_completion to
    > finish, or what.
    >
    > I'll look more at it tomorrow.
    >

    Hi Steven,

    Hrm, does this selftest execute early at boot-time ? If yes, and if
    classic RCUs are not up yet at that point in bootup, then using
    rcu_barrier() will not work well. Another thing to look into is to make
    sure tracing_sched_unregister is never called with interrupts or
    preemption off.

    Mathieu

    > -- Steve
    >
    >

    --
    Mathieu Desnoyers
    OpenPGP key fingerprint: 8CD5 52C3 8E3C 4140 715F BA06 3F25 A8FE 3BAE 9A68


    \
     
     \ /
      Last update: 2008-10-21 06:15    [W:0.023 / U:30.600 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site