From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1756655AbbGPRkH (ORCPT ); Thu, 16 Jul 2015 13:40:07 -0400 Received: from mail-wg0-f42.google.com ([74.125.82.42]:35813 "EHLO mail-wg0-f42.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1755647AbbGPRkD (ORCPT ); Thu, 16 Jul 2015 13:40:03 -0400 From: Tal Shorer To: tal.shorer@gmail.com, rostedt@goodmis.org Cc: mingo@redhat.com, linux-kernel@vger.kernel.org Subject: [PATCH v2 1/2] tracing: allow disabling compilation of specific trace systems Date: Thu, 16 Jul 2015 20:39:35 +0300 Message-Id: <1437068376-24617-2-git-send-email-tal.shorer@gmail.com> X-Mailer: git-send-email 2.4.3 In-Reply-To: <1437068376-24617-1-git-send-email-tal.shorer@gmail.com> References: <20150713143459.09582cb9@gandalf.local.home> <1437068376-24617-1-git-send-email-tal.shorer@gmail.com> Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 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 --- include/linux/tracepoint.h | 17 ++++++++++++++--- include/trace/define_trace.h | 2 +- 2 files changed, 15 insertions(+), 4 deletions(-) diff --git a/include/linux/tracepoint.h b/include/linux/tracepoint.h index c728513..a8ddfd3 100644 --- a/include/linux/tracepoint.h +++ b/include/linux/tracepoint.h @@ -103,7 +103,18 @@ extern void syscall_unregfunc(void); #define TP_ARGS(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 @@ -226,7 +237,7 @@ extern void syscall_unregfunc(void); #define EXPORT_TRACEPOINT_SYMBOL(name) \ EXPORT_SYMBOL(__tracepoint_##name) -#else /* !CONFIG_TRACEPOINTS */ +#else /* !TRACEPOINTS_ENABLED */ #define __DECLARE_TRACE(name, proto, args, cond, data_proto, data_args) \ static inline void trace_##name(proto) \ { } \ @@ -258,7 +269,7 @@ extern void syscall_unregfunc(void); #define EXPORT_TRACEPOINT_SYMBOL_GPL(name) #define EXPORT_TRACEPOINT_SYMBOL(name) -#endif /* CONFIG_TRACEPOINTS */ +#endif /* TRACEPOINTS_ENABLED */ #ifdef CONFIG_TRACING /** diff --git a/include/trace/define_trace.h b/include/trace/define_trace.h index 02e1003..b763d3f 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 +#ifdef TRACEPOINTS_ENABLED #include #endif -- 2.4.3