Messages in this thread Patch in this message | | | Date | Mon, 13 Jul 2015 14:34:59 -0400 | From | Steven Rostedt <> | Subject | Re: [Patch RFC 1/2] tracing: allow disabling compilation of specific trace systems |
| |
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.
/* * 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. */ #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 >
| |