From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751630AbbGMViN (ORCPT ); Mon, 13 Jul 2015 17:38:13 -0400 Received: from mail-wi0-f195.google.com ([209.85.212.195]:36729 "EHLO mail-wi0-f195.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751093AbbGMViM (ORCPT ); Mon, 13 Jul 2015 17:38:12 -0400 MIME-Version: 1.0 In-Reply-To: <20150713143459.09582cb9@gandalf.local.home> References: <1434831679-3852-1-git-send-email-tal.shorer@gmail.com> <1434831679-3852-2-git-send-email-tal.shorer@gmail.com> <20150713143459.09582cb9@gandalf.local.home> Date: Tue, 14 Jul 2015 00:38:10 +0300 Message-ID: Subject: Re: [Patch RFC 1/2] tracing: allow disabling compilation of specific trace systems From: Tal Shorer To: Steven Rostedt Cc: mingo@redhat.com, "" Content-Type: text/plain; charset=UTF-8 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Mon, Jul 13, 2015 at 9:34 PM, Steven Rostedt wrote: > On Sat, 20 Jun 2015 23:21:18 +0300 > Tal Shorer 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 >> --- >> 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 >> #endif >> >