Messages in this thread | | | Date | Tue, 14 Jul 2015 00:38:10 +0300 | Subject | Re: [Patch RFC 1/2] tracing: allow disabling compilation of specific trace systems | From | Tal Shorer <> |
| |
On Mon, Jul 13, 2015 at 9:34 PM, Steven Rostedt <rostedt@goodmis.org> wrote: > On Sat, 20 Jun 2015 23:21:18 +0300 > Tal Shorer <tal.shorer@gmail.com> wrote: > >> Allow a trace events header file to disable compilation of its >> trace events by defining the preprocessor macro NOTRACE. >> >> This could be done, for example, according to a Kconfig option. >> >> Signed-off-by: Tal Shorer <tal.shorer@gmail.com> >> --- >> include/linux/tracepoint.h | 6 +++--- >> include/trace/define_trace.h | 2 +- >> 2 files changed, 4 insertions(+), 4 deletions(-) >> >> diff --git a/include/linux/tracepoint.h b/include/linux/tracepoint.h >> index a5f7f3e..c869f84 100644 >> --- a/include/linux/tracepoint.h >> +++ b/include/linux/tracepoint.h >> @@ -111,7 +111,7 @@ extern void syscall_unregfunc(void); >> #define TP_ARGS(args...) args >> #define TP_CONDITION(args...) args >> >> -#ifdef CONFIG_TRACEPOINTS >> +#if defined(CONFIG_TRACEPOINTS) && !defined(NOTRACE) > > Instead of the duplicate condition above, it would be better to make a > new macro at the top. And we can add a nice comment to it as well. Technically they're a little different, one with CONFIG_TRACEPOINTS and the other with CONFIG_EVENT_TRACING. Looking briefly at the Kconfig files, it appears you can't really have CONFIG_TRACEPOINTS without also getting CONFIG_EVENT_TRACING along the way. If it's fine with you to effectively change the check for CONFIG_EVENT_TRACING with a check for CONFIG_TRACEPOINTS (or vice versa, let me know if you have a preference), it's fine with me and will be added in v2. > > /* > * Individual subsystem my have a separate configuration to > * enable their tracepoints. By default, this file will create > * the tracepoints if CONFIG_TRACEPOINT is defined. If a subsystem > * wants to be able to disable its tracepoints from being created > * it can define NOTRACE before including the tracepoint headers. > */ Will be added in v2. I believe I'll have time to write and test it during the week. > #if defined(CONFIG_TRACEPOINTS) && !defined(NOTRACE) > # define TRACEPOINTS_ENABLED > #endif > > Then switch all the conditions below to: > > #ifdef TRACEPOINTS_ENABLED > > -- Steve > > >> >> /* >> * it_func[0] is never NULL because there is at least one element in the array >> @@ -234,7 +234,7 @@ extern void syscall_unregfunc(void); >> #define EXPORT_TRACEPOINT_SYMBOL(name) \ >> EXPORT_SYMBOL(__tracepoint_##name) >> >> -#else /* !CONFIG_TRACEPOINTS */ >> +#else /* !(defined(CONFIG_TRACEPOINTS) && !defined(NOTRACE)) */ >> #define __DECLARE_TRACE(name, proto, args, cond, data_proto, data_args) \ >> static inline void trace_##name(proto) \ >> { } \ >> @@ -266,7 +266,7 @@ extern void syscall_unregfunc(void); >> #define EXPORT_TRACEPOINT_SYMBOL_GPL(name) >> #define EXPORT_TRACEPOINT_SYMBOL(name) >> >> -#endif /* CONFIG_TRACEPOINTS */ >> +#endif /* defined(CONFIG_TRACEPOINTS) && !defined(NOTRACE) */ >> >> #ifdef CONFIG_TRACING >> /** >> diff --git a/include/trace/define_trace.h b/include/trace/define_trace.h >> index 02e1003..e847fd7 100644 >> --- a/include/trace/define_trace.h >> +++ b/include/trace/define_trace.h >> @@ -86,7 +86,7 @@ >> #undef DECLARE_TRACE >> #define DECLARE_TRACE(name, proto, args) >> >> -#ifdef CONFIG_EVENT_TRACING >> +#if defined(CONFIG_EVENT_TRACING) && !defined(NOTRACE) >> #include <trace/ftrace.h> >> #endif >> >
| |