On Fri, 2008-11-07 at 10:21 -0800, Andrew Morton wrote: > On Fri, 7 Nov 2008 13:00:41 -0500 > Mathieu Desnoyers <mathieu.desnoyers@xxxxxxxxxx> wrote: > > > It's one of those things I hope I never need to know about, but perhaps > > > we do somewhere have static storage in an inline. Wouldn't surprise > > > me, and I bet that if we do, it's a bug. > > > > Tracepoints actually use that. > > Referring to include/linux/tracepoint.h:DEFINE_TRACE()? > > It does look a bit fragile. Does every .c file which included > include/trace/block.h get a copy of __tracepoint_block_rq_issue, > whether or not it used that tracepoint? Hopefully not. > > > It could be changed so they use : > > > > DECLARE_TRACE() (in include/trace/group.h) > > DEFINE_TRACE() (in the appropriate kernel c file) > > trace_somename(); (in the code) > > > > instead. That would actually make more sense and remove the need for > > multiple declarations when the same tracepoint name is used in many > > spots (this is a problem kmemtrace has, it generates a lot of tracepoint > > declarations). Could this scheme also help with the thousands of sparse warnings that kmemtrace produces because of the current arrangement, all of the form: include/linux/kmemtrace.h:33:2: warning: Initializer entry defined twice include/linux/kmemtrace.h:33:2: also defined here As you could have unique names for the tracepoints now, rather than the 'unique' static storage? Or am I off-base here? Harvey -- To unsubscribe from this list: send the line "unsubscribe linux-arch" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html