tracing: Allow disabling compilation of specific trace systems

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.

Link: http://lkml.kernel.org/r/1438432079-11704-3-git-send-email-tal.shorer@gmail.com

Signed-off-by: Tal Shorer <tal.shorer@gmail.com>
Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
This commit is contained in:
Tal Shorer 2015-08-01 15:27:57 +03:00 коммит произвёл Steven Rostedt
Родитель b86d9371be
Коммит c63b7682b6
2 изменённых файлов: 15 добавлений и 4 удалений

Просмотреть файл

@ -111,7 +111,18 @@ extern void syscall_unregfunc(void);
#define TP_ARGS(args...) args #define TP_ARGS(args...) args
#define TP_CONDITION(args...) args #define TP_CONDITION(args...) args
#ifdef CONFIG_TRACEPOINTS /*
* 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
#ifdef TRACEPOINTS_ENABLED
/* /*
* it_func[0] is never NULL because there is at least one element in the array * it_func[0] is never NULL because there is at least one element in the array
@ -234,7 +245,7 @@ extern void syscall_unregfunc(void);
#define EXPORT_TRACEPOINT_SYMBOL(name) \ #define EXPORT_TRACEPOINT_SYMBOL(name) \
EXPORT_SYMBOL(__tracepoint_##name) EXPORT_SYMBOL(__tracepoint_##name)
#else /* !CONFIG_TRACEPOINTS */ #else /* !TRACEPOINTS_ENABLED */
#define __DECLARE_TRACE(name, proto, args, cond, data_proto, data_args) \ #define __DECLARE_TRACE(name, proto, args, cond, data_proto, data_args) \
static inline void trace_##name(proto) \ static inline void trace_##name(proto) \
{ } \ { } \
@ -266,7 +277,7 @@ extern void syscall_unregfunc(void);
#define EXPORT_TRACEPOINT_SYMBOL_GPL(name) #define EXPORT_TRACEPOINT_SYMBOL_GPL(name)
#define EXPORT_TRACEPOINT_SYMBOL(name) #define EXPORT_TRACEPOINT_SYMBOL(name)
#endif /* CONFIG_TRACEPOINTS */ #endif /* TRACEPOINTS_ENABLED */
#ifdef CONFIG_TRACING #ifdef CONFIG_TRACING
/** /**

Просмотреть файл

@ -86,7 +86,7 @@
#undef DECLARE_TRACE #undef DECLARE_TRACE
#define DECLARE_TRACE(name, proto, args) #define DECLARE_TRACE(name, proto, args)
#ifdef CONFIG_EVENT_TRACING #ifdef TRACEPOINTS_ENABLED
#include <trace/trace_events.h> #include <trace/trace_events.h>
#include <trace/perf.h> #include <trace/perf.h>
#endif #endif