Re: trace/events: DECLARE vs DEFINE semantic

From: Masami Hiramatsu
Date: Thu Dec 03 2009 - 10:33:43 EST


Steven Rostedt wrote:
> 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.

Module's local headers usually uses only from itself. Other modules
may not touch it. However, AFAIK, event definitions must be referred
by event consumer which is another module. IOW, those local headers
will not be included in kernel-headers/kernel-devel package :-(

> 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).

Yeah, that's reasonable. :-)

Thank you,

--
Masami Hiramatsu

Software Engineer
Hitachi Computer Products (America), Inc.
Software Solutions Division

e-mail: mhiramat@xxxxxxxxxx

--
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/