lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:	Mon, 13 Jul 2015 14:34:59 -0400
From:	Steven Rostedt <rostedt@...dmis.org>
To:	Tal Shorer <tal.shorer@...il.com>
Cc:	mingo@...hat.com, linux-kernel@...r.kernel.org
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@...il.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@...il.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
>  

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ