Re: trace/events: DECLARE vs DEFINE semantic

From: Steven Rostedt
Date: Thu Dec 03 2009 - 08:55:02 EST


On Thu, 2009-12-03 at 08:51 -0500, Masami Hiramatsu wrote:

> > Basically, we should have a:
> >
> > kernel/sched_trace.c that includes the include/trace/events/sched.h and
> > does the define.
> >
> > And the same goes for other trace points.
>
> Hmm, I'd rather like to move it into kernel/events/ or something new
> sub directory, since those files will have just two lines (define and
> include).

I'm fine with a kernel/events dir.

>
> >> e.g.
> >>
> >> @kernel/tracepoint.c
> >> ...
> >> #define CREATE_TRACE_POINTS
> >> #include <trace/events/sched.h>
> >> #include <trace/events/...>
> >
> > We could do this for all that is defined in the include/trace/events.
> >
> >> ...
> >>
> >> @kernel/sched.c
> >> ...
> >> #include <trace/events/sched.h> /* Just include events header */
> >> ...
> >>
> >> @fs/ext4/super.c (no change, since it can be module)
> >> ...
> >> #define CREATE_TRACE_POINTS
> >> #include <trace/events/ext4.h>
> >
> > Perhaps we should move out anything in include/trace/events that is also
> > a module into its sub system?
>
> Would you mean putting those headers in sub-system's directory?
> (e.g. fs/ext4/)
> In that case, a problem will happen when user want to hook those
> tracepoint from their module, because it is hard to find those
> local headers.

Why? Modules usually do have their own headers in their sub system.

OK, if a module keeps their headers global (include/linux) then sure
they can keep their tracepoint header in include/trace/events. But I
still think that the module CREATE_TRACE_POINTS code should be kept with
the module code itself (but in a small separate file).

-- Steve


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/