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    [from the cache]
©2003-2011 Jasper Spaans