lkml.org 
[lkml]   [2015]   [Jul]   [13]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
Date
From
SubjectRe: [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
>



\
 
 \ /
  Last update: 2015-07-13 20:41    [W:0.120 / U:0.568 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site