On 2013/4/9 10:16, Steven Rostedt wrote: > On Tue, 2013-04-09 at 10:08 +0800, zhangwei(Jovi) wrote: >> On 2013/4/9 4:49, Steven Rostedt wrote: >>> From: "Steven Rostedt (Red Hat)" <rostedt@xxxxxxxxxxx> >>> >>> The function tracing control loop used by perf spits out a warning >>> if the called function is not a control function. This is because >>> the control function references a per cpu allocated data structure >>> on struct ftrace_ops that is not allocated for other types of >>> functions. >>> >>> commit 0a016409e42 "ftrace: Optimize the function tracer list loop" >>> >>> Had an optimization done to all function tracing loops to optimize >>> for a single registered ops. Unfortunately, this allows for a slight >>> race when tracing starts or ends, where the stub function might be >>> called after the current registered ops is removed. In this case we >>> get the following dump: >>> > >> Involve stable? 3.8 kernel user would need this fix. > > Why? commit 0a016409e42 "ftrace: Optimize the function tracer list loop" > was added for 3.9. 3.8 has: > > op = rcu_dereference_raw(ftrace_control_list); > while (op != &ftrace_list_end) { > if (!ftrace_function_local_disabled(op) && > ftrace_ops_test(op, ip)) > op->func(ip, parent_ip, op, regs); > > op = rcu_dereference_raw(op->next); > }; > > The stub function will never get called. > > -- Steve Hmm, You are right, I misunderstand tag info got by git describe in my local box [root@jovi linux]# git describe 0a016409e42 trace-3.8-rc4-fix-19-g0a01640 > > > > > . > -- To unsubscribe from this list: send the line "unsubscribe stable" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html