lkml.org 
[lkml]   [2012]   [Jan]   [30]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [PATCH 2/7] ftrace: Add enable/disable ftrace_ops control interface
On Sat, Jan 28, 2012 at 07:43:24PM +0100, Jiri Olsa wrote:
> Adding a way to temporarily enable/disable ftrace_ops. The change
> follows the same way as 'global' ftrace_ops are done.
>
> Introducing 2 global ftrace_ops - control_ops and ftrace_control_list
> which take over all ftrace_ops registered with FTRACE_OPS_FL_CONTROL
> flag. In addition new per cpu flag called 'disabled' is also added to
> ftrace_ops to provide the control information for each cpu.
>
> When ftrace_ops with FTRACE_OPS_FL_CONTROL is registered, it is
> set as disabled for all cpus.
>
> The ftrace_control_list contains all the registered 'control' ftrace_ops.
> The control_ops provides function which iterates ftrace_control_list
> and does the check for 'disabled' flag on current cpu.
>
> Adding 3 inline functions:
> ftrace_function_local_disable/ftrace_function_local_enable
> - enable/disable the ftrace_ops on current cpu
> ftrace_function_local_disabled
> - get disabled ftrace_ops::disabled value for current cpu
>
> Signed-off-by: Jiri Olsa <jolsa@redhat.com>
> ---
> include/linux/ftrace.h | 65 ++++++++++++++++++++++++++++
> kernel/trace/ftrace.c | 111 +++++++++++++++++++++++++++++++++++++++++++++---
> kernel/trace/trace.h | 2 +
> 3 files changed, 171 insertions(+), 7 deletions(-)
>
> diff --git a/include/linux/ftrace.h b/include/linux/ftrace.h
> index f33fb3b..5cb3a51 100644
> --- a/include/linux/ftrace.h
> +++ b/include/linux/ftrace.h
> @@ -31,16 +31,32 @@ ftrace_enable_sysctl(struct ctl_table *table, int write,
>
> typedef void (*ftrace_func_t)(unsigned long ip, unsigned long parent_ip);
>
> +/*
> + * FTRACE_OPS_FL_* bits denote the state of ftrace_ops struct and are
> + * set in the flags member.
> + *
> + * ENABLED - set/unset when ftrace_ops is registered/unregistered
> + * GLOBAL - set manualy by ftrace_ops user to denote the ftrace_ops
> + * is part of the global tracers sharing the same filter
> + * via set_ftrace_* debugfs files.
> + * DYNAMIC - set when ftrace_ops is registered to denote dynamically
> + * allocated ftrace_ops which need special care
> + * CONTROL - set manualy by ftrace_ops user to denote the ftrace_ops
> + * could be controled by following calls:
> + * ftrace_function_enable, ftrace_function_disable

Should be ftrace_function_local_enable.

Acked-by: Frederic Weisbecker <fweisbec@gmail.com>


\
 
 \ /
  Last update: 2012-01-30 07:01    [W:0.233 / U:3.720 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site