All of lore.kernel.org
 help / color / mirror / Atom feed
From: Steven Rostedt <rostedt@goodmis.org>
To: Jiri Olsa <jolsa@redhat.com>
Cc: fweisbec@gmail.com, mingo@redhat.com, paulus@samba.org,
	acme@ghostprotocols.net, linux-kernel@vger.kernel.org
Subject: Re: [PATCH 9/9] ftrace, perf: Add filter support for function trace event
Date: Mon, 28 Nov 2011 15:07:04 -0500	[thread overview]
Message-ID: <1322510824.17003.18.camel@frodo> (raw)
In-Reply-To: <1322417074-5834-10-git-send-email-jolsa@redhat.com>

On Sun, 2011-11-27 at 19:04 +0100, Jiri Olsa wrote:
> Adding support to filter function trace event via perf
> interface. It is now possible to use filter interface
> in the perf tool like:
> 
>   perf record -e ftrace:function --filter="(ip == mm_*)" ls
> 
> The filter syntax is restricted to the the 'ip' field only,
> and following operators are accepted '==' '!=' '&&', ending
> up with the filter strings like:
> 
>   "ip == f1 f2 ..." && "ip != f3 f4 ..." ...
> 
> The '==' operator adds trace filter with same efect as would

effect

> be added via set_ftrace_filter file.
> 
> The '!=' operator adds trace filter with same efect as would

effect

> be added via set_ftrace_notrace file.
> 
> The right side of the '!=', '==' operators is list of functions
> or regexp. to be added to filter separated by space. Same syntax
> is supported/required as for the set_ftrace_filter and
> set_ftrace_notrace files.
> 
> The '&&' operator is used for connecting multiple filter definitions
> together. It is possible to have more than one '==' and '!='
> opearators within one filter string.

operators


Interesting way to handle it. I'll have to test it out. I wonder if we
could also make this work the same way with ftrace too.

-- Steve

> 
> Signed-off-by: Jiri Olsa <jolsa@redhat.com>
> ---
>  kernel/trace/trace.h               |    4 +-
>  kernel/trace/trace_events_filter.c |  111 +++++++++++++++++++++++++++++++++---
>  kernel/trace/trace_export.c        |    5 ++
>  3 files changed, 110 insertions(+), 10 deletions(-)
> 
> diff --git a/kernel/trace/trace.h b/kernel/trace/trace.h
> index c4330dc..fde4d2a 100644
> --- a/kernel/trace/trace.h
> +++ b/kernel/trace/trace.h
> @@ -589,6 +589,8 @@ static inline int ftrace_trace_task(struct task_struct *task)
>  static inline int ftrace_is_dead(void) { return 0; }
>  #endif
>  
> +int ftrace_event_is_function(struct ftrace_event_call *call);
> +
>  /*
>   * struct trace_parser - servers for reading the user input separated by spaces
>   * @cont: set if the input is not complete - no final space char was found
> @@ -765,9 +767,7 @@ struct filter_pred {
>  	u64 			val;
>  	struct regex		regex;
>  	unsigned short		*ops;
> -#ifdef CONFIG_FTRACE_STARTUP_TEST
>  	struct ftrace_event_field *field;
> -#endif
>  	int 			offset;
>  	int 			not;
>  	int 			op;
> diff --git a/kernel/trace/trace_events_filter.c b/kernel/trace/trace_events_filter.c
> index 7b0b04c..7434f50 100644
> --- a/kernel/trace/trace_events_filter.c
> +++ b/kernel/trace/trace_events_filter.c
> @@ -54,6 +54,13 @@ struct filter_op {
>  	int precedence;
>  };
>  
> +static struct filter_op filter_ftrace_ops[] = {
> +	{ OP_AND,	"&&",		1 },
> +	{ OP_NE,	"!=",		2 },
> +	{ OP_EQ,	"==",		2 },
> +	{ OP_NONE,	"OP_NONE",	0 },
> +};
> +
>  static struct filter_op filter_ops[] = {
>  	{ OP_OR,	"||",		1 },
>  	{ OP_AND,	"&&",		2 },
> @@ -81,6 +88,7 @@ enum {
>  	FILT_ERR_TOO_MANY_PREDS,
>  	FILT_ERR_MISSING_FIELD,
>  	FILT_ERR_INVALID_FILTER,
> +	FILT_ERR_IP_FIELD_ONLY,
>  };
>  
>  static char *err_text[] = {
> @@ -96,6 +104,7 @@ static char *err_text[] = {
>  	"Too many terms in predicate expression",
>  	"Missing field name and/or value",
>  	"Meaningless filter expression",
> +	"Only 'ip' field is supported for function trace",
>  };
>  
>  struct opstack_op {
> @@ -992,7 +1001,12 @@ static int init_pred(struct filter_parse_state *ps,
>  			fn = filter_pred_strloc;
>  		else
>  			fn = filter_pred_pchar;
> -	} else if (!is_function_field(field)) {
> +	} else if (is_function_field(field)) {
> +		if (strcmp(field->name, "ip")) {
> +			parse_error(ps, FILT_ERR_IP_FIELD_ONLY, 0);
> +			return -EINVAL;
> +		}
> +	} else {
>  		if (field->is_signed)
>  			ret = strict_strtoll(pred->regex.pattern, 0, &val);
>  		else
> @@ -1339,10 +1353,8 @@ static struct filter_pred *create_pred(struct filter_parse_state *ps,
>  
>  	strcpy(pred.regex.pattern, operand2);
>  	pred.regex.len = strlen(pred.regex.pattern);
> -
> -#ifdef CONFIG_FTRACE_STARTUP_TEST
>  	pred.field = field;
> -#endif
> +
>  	return init_pred(ps, field, &pred) ? NULL : &pred;
>  }
>  
> @@ -1894,6 +1906,81 @@ void ftrace_profile_free_filter(struct perf_event *event)
>  	__free_filter(filter);
>  }
>  
> +struct function_filter_data {
> +	struct ftrace_ops *ops;
> +	int first_filter;
> +	int first_notrace;
> +};
> +
> +static int __ftrace_function_set_filter(int filter, char *buf, int len,
> +					struct function_filter_data *data)
> +{
> +	int *reset;
> +
> +	reset = filter ? &data->first_filter : &data->first_notrace;
> +
> +	if (filter)
> +		ftrace_set_filter(data->ops, buf, len, *reset);
> +	else
> +		ftrace_set_notrace(data->ops, buf, len, *reset);
> +
> +	if (*reset)
> +		*reset = 0;
> +
> +	return WALK_PRED_DEFAULT;
> +}
> +
> +static int ftrace_function_check_pred(struct filter_pred *pred)
> +{
> +	struct ftrace_event_field *field = pred->field;
> +
> +	/*
> +	  Check the predicate for function trace, verify:
> +	   - only '==' and '!=' is used
> +	   - the 'ip' field is used
> +	*/
> +	if (WARN((pred->op != OP_EQ) && (pred->op != OP_NE),
> +		 "wrong operator for function filter: %d\n", pred->op))
> +		return -EINVAL;
> +
> +	if (strcmp(field->name, "ip"))
> +		return -EINVAL;
> +
> +	return 0;
> +}
> +
> +static int ftrace_function_set_filter_cb(enum move_type move,
> +					 struct filter_pred *pred,
> +					 int *err, void *data)
> +{
> +	if ((move != MOVE_DOWN) ||
> +	    (pred->left != FILTER_PRED_INVALID))
> +		return WALK_PRED_DEFAULT;
> +
> +	/* Double checking the predicate is valid for function trace. */
> +	*err = ftrace_function_check_pred(pred);
> +	if (*err)
> +		return WALK_PRED_ABORT;
> +
> +	return __ftrace_function_set_filter(pred->op == OP_EQ,
> +					    pred->regex.pattern,
> +					    pred->regex.len,
> +					    data);
> +}
> +
> +static int ftrace_function_set_filter(struct perf_event *event,
> +				      struct event_filter *filter)
> +{
> +	struct function_filter_data data = {
> +		.first_filter  = 1,
> +		.first_notrace = 1,
> +		.ops           = &event->ftrace_ops,
> +	};
> +
> +	return walk_pred_tree(filter->preds, filter->root,
> +			      ftrace_function_set_filter_cb, &data);
> +}
> +
>  int ftrace_profile_set_filter(struct perf_event *event, int event_id,
>  			      char *filter_str)
>  {
> @@ -1901,6 +1988,7 @@ int ftrace_profile_set_filter(struct perf_event *event, int event_id,
>  	struct event_filter *filter;
>  	struct filter_parse_state *ps;
>  	struct ftrace_event_call *call;
> +	struct filter_op *fops = filter_ops;
>  
>  	mutex_lock(&event_mutex);
>  
> @@ -1925,14 +2013,21 @@ int ftrace_profile_set_filter(struct perf_event *event, int event_id,
>  	if (!ps)
>  		goto free_filter;
>  
> -	parse_init(ps, filter_ops, filter_str);
> +	if (ftrace_event_is_function(call))
> +		fops = filter_ftrace_ops;
> +
> +	parse_init(ps, fops, filter_str);
>  	err = filter_parse(ps);
>  	if (err)
>  		goto free_ps;
>  
>  	err = replace_preds(call, filter, ps, filter_str, false);
> -	if (!err)
> -		event->filter = filter;
> +	if (!err) {
> +		if (ftrace_event_is_function(call))
> +			err = ftrace_function_set_filter(event, filter);
> +		else
> +			event->filter = filter;
> +	}
>  
>  free_ps:
>  	filter_opstack_clear(ps);
> @@ -1940,7 +2035,7 @@ free_ps:
>  	kfree(ps);
>  
>  free_filter:
> -	if (err)
> +	if (err || ftrace_event_is_function(call))
>  		__free_filter(filter);
>  
>  out_unlock:
> diff --git a/kernel/trace/trace_export.c b/kernel/trace/trace_export.c
> index 7b035ab..46c35e2 100644
> --- a/kernel/trace/trace_export.c
> +++ b/kernel/trace/trace_export.c
> @@ -208,4 +208,9 @@ struct ftrace_event_call __used event_##call = {			\
>  struct ftrace_event_call __used						\
>  __attribute__((section("_ftrace_events"))) *__event_##call = &event_##call;
>  
> +int ftrace_event_is_function(struct ftrace_event_call *call)
> +{
> +	return call == &event_function;
> +}
> +
>  #include "trace_entries.h"



  reply	other threads:[~2011-11-28 20:07 UTC|newest]

Thread overview: 186+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-11-27 18:04 [RFC] ftrace, perf: Adding support to use function trace Jiri Olsa
2011-11-27 18:04 ` [PATCH 1/9] trace: Fix uninitialized variable compiler warning Jiri Olsa
2011-11-28 16:19   ` Steven Rostedt
2011-11-28 16:25     ` Jiri Olsa
2011-11-28 19:34       ` Steven Rostedt
2011-11-27 18:04 ` [PATCH 2/9] ftrace: Fix possible NULL dereferencing in __ftrace_hash_rec_update Jiri Olsa
2011-11-28 16:24   ` Steven Rostedt
2011-11-27 18:04 ` [PATCH 3/9] ftrace: Fix shutdown to disable calls properly Jiri Olsa
2011-11-28 19:18   ` Steven Rostedt
2011-11-29 11:21     ` Jiri Olsa
2011-11-27 18:04 ` [PATCH 4/9] ftrace: Add enable/disable ftrace_ops control interface Jiri Olsa
2011-11-28 19:26   ` Steven Rostedt
2011-11-28 20:02     ` Peter Zijlstra
2011-11-28 20:05       ` Peter Zijlstra
2011-11-28 20:14         ` Steven Rostedt
2011-11-28 20:20           ` Peter Zijlstra
2011-11-28 20:12       ` Steven Rostedt
2011-11-28 20:15         ` Peter Zijlstra
2011-11-28 20:24           ` Steven Rostedt
2011-11-28 20:21   ` Steven Rostedt
2011-11-29 10:07     ` Jiri Olsa
2011-11-27 18:04 ` [PATCH 5/9] ftrace, perf: Add open/close tracepoint perf registration actions Jiri Olsa
2011-11-27 18:04 ` [PATCH 6/9] ftrace, perf: Add add/del " Jiri Olsa
2011-11-27 18:04 ` [PATCH 7/9] ftrace, perf: Add support to use function tracepoint in perf Jiri Olsa
2011-11-28 19:58   ` Steven Rostedt
2011-11-28 20:03     ` Peter Zijlstra
2011-11-28 20:13       ` Steven Rostedt
2011-11-29 10:10         ` Jiri Olsa
2011-11-28 20:08     ` Peter Zijlstra
2011-11-28 20:10       ` Peter Zijlstra
2011-11-28 20:16         ` Steven Rostedt
2011-11-28 20:18           ` Peter Zijlstra
2011-11-27 18:04 ` [PATCH 8/9] ftrace, perf: Add FILTER_TRACE_FN event field type Jiri Olsa
2011-11-28 20:01   ` Steven Rostedt
2011-11-29 10:14     ` Jiri Olsa
2011-11-29 11:22     ` Jiri Olsa
2011-11-29 11:51       ` Peter Zijlstra
2011-11-29 12:21         ` Jiri Olsa
2011-11-27 18:04 ` [PATCH 9/9] ftrace, perf: Add filter support for function trace event Jiri Olsa
2011-11-28 20:07   ` Steven Rostedt [this message]
2011-12-05 17:22 ` [RFCv2] ftrace, perf: Adding support to use function trace Jiri Olsa
2011-12-05 17:22   ` [PATCHv2 01/10] ftrace: Fix possible NULL dereferencing in __ftrace_hash_rec_update Jiri Olsa
2011-12-05 17:22   ` [PATCHv2 02/10] ftrace: Change mcount call replacement logic Jiri Olsa
2011-12-19 19:03     ` Steven Rostedt
2011-12-20 13:10       ` Jiri Olsa
2011-12-20 16:33         ` Steven Rostedt
2011-12-20 19:39     ` Steven Rostedt
2011-12-21  9:57       ` Jiri Olsa
2011-12-21 11:34         ` Steven Rostedt
2011-12-21 11:35           ` Steven Rostedt
2011-12-21 11:40             ` Jiri Olsa
2012-01-08  9:13     ` [tip:perf/core] ftrace: Fix unregister ftrace_ops accounting tip-bot for Jiri Olsa
2011-12-05 17:22   ` [PATCHv2 03/10] ftrace: Add enable/disable ftrace_ops control interface Jiri Olsa
2011-12-19 19:19     ` Steven Rostedt
2011-12-19 19:35     ` Steven Rostedt
2011-12-20 14:57       ` Jiri Olsa
2011-12-20 15:25         ` Steven Rostedt
2011-12-20 15:35           ` Jiri Olsa
2011-12-05 17:22   ` [PATCHv2 04/10] ftrace, perf: Add open/close tracepoint perf registration actions Jiri Olsa
2011-12-05 17:22   ` [PATCHv2 05/10] ftrace, perf: Add add/del " Jiri Olsa
2011-12-05 17:22   ` [PATCHv2 06/10] ftrace, perf: Add support to use function tracepoint in perf Jiri Olsa
2011-12-05 17:22   ` [PATCHv2 07/10] ftrace: Change filter/notrace set functions to return exit code Jiri Olsa
2011-12-19 19:22     ` Steven Rostedt
2011-12-05 17:22   ` [PATCHv2 08/10] ftrace, perf: Distinguish ftrace function event field type Jiri Olsa
2011-12-05 17:22   ` [PATCHv2 09/10] ftrace, perf: Add filter support for function trace event Jiri Olsa
2011-12-05 17:22   ` [PATCHv2 10/10] ftrace, graph: Add global_ops filter callback for graph tracing Jiri Olsa
2011-12-19 19:27     ` Steven Rostedt
2011-12-19 13:40   ` [RFCv2] ftrace, perf: Adding support to use function trace Jiri Olsa
2011-12-19 16:45     ` Steven Rostedt
2011-12-19 16:58     ` Frederic Weisbecker
2011-12-21 11:48   ` [PATCHv3 0/8] " Jiri Olsa
2011-12-21 11:48     ` [PATCH 1/8] ftrace: Change filter/notrace set functions to return exit code Jiri Olsa
2011-12-21 11:48     ` [PATCH 2/8] ftrace: Fix possible NULL dereferencing in __ftrace_hash_rec_update Jiri Olsa
2011-12-21 15:23       ` Steven Rostedt
2011-12-21 11:48     ` [PATCH 3/8] ftrace: Add enable/disable ftrace_ops control interface Jiri Olsa
2011-12-21 16:01       ` Steven Rostedt
2011-12-21 16:43         ` Jiri Olsa
2011-12-21 16:55           ` Steven Rostedt
2012-01-24  1:26         ` Frederic Weisbecker
2011-12-21 11:48     ` [PATCH 4/8] ftrace, perf: Add open/close tracepoint perf registration actions Jiri Olsa
2011-12-21 11:48     ` [PATCH 5/8] ftrace, perf: Add add/del " Jiri Olsa
2011-12-21 11:48     ` [PATCH 6/8] ftrace, perf: Add support to use function tracepoint in perf Jiri Olsa
2011-12-21 11:48     ` [PATCH 7/8] ftrace, perf: Distinguish ftrace function event field type Jiri Olsa
2011-12-21 11:48     ` [PATCH 8/8] ftrace, perf: Add filter support for function trace event Jiri Olsa
2011-12-21 18:56     ` [PATCHv4 0/8] ftrace, perf: Adding support to use function trace Jiri Olsa
2011-12-21 18:56       ` [PATCH 1/7] ftrace: Change filter/notrace set functions to return exit code Jiri Olsa
2011-12-22  0:12         ` Steven Rostedt
2011-12-22  8:01           ` [PATCHv5 " Jiri Olsa
2011-12-21 18:56       ` [PATCH 2/7] ftrace: Add enable/disable ftrace_ops control interface Jiri Olsa
2011-12-21 18:56       ` [PATCH 3/7] ftrace, perf: Add open/close tracepoint perf registration actions Jiri Olsa
2011-12-21 18:56       ` [PATCH 4/7] ftrace, perf: Add add/del " Jiri Olsa
2011-12-21 18:56       ` [PATCH 5/7] ftrace, perf: Add support to use function tracepoint in perf Jiri Olsa
2011-12-21 18:56       ` [PATCH 6/7] ftrace, perf: Distinguish ftrace function event field type Jiri Olsa
2011-12-21 18:56       ` [PATCH 7/7] ftrace, perf: Add filter support for function trace event Jiri Olsa
2011-12-21 22:07         ` Frederic Weisbecker
2011-12-22 12:55           ` Jiri Olsa
2011-12-22 15:26             ` [PATCHvFIXED " Jiri Olsa
2011-12-24  2:35               ` Frederic Weisbecker
2011-12-21 19:02       ` [PATCHv4 0/7] ftrace, perf: Adding support to use function trace Jiri Olsa
2012-01-02  9:04       ` [PATCHv5 " Jiri Olsa
2012-01-02  9:04         ` [PATCH 1/7] ftrace: Change filter/notrace set functions to return exit code Jiri Olsa
2012-02-17 13:46           ` [tip:perf/core] ftrace: Change filter/ notrace " tip-bot for Jiri Olsa
2012-01-02  9:04         ` [PATCH 2/7] ftrace: Add enable/disable ftrace_ops control interface Jiri Olsa
2012-01-17  1:42           ` Frederic Weisbecker
2012-01-17  2:07             ` Steven Rostedt
2012-01-17  2:29               ` Frederic Weisbecker
2012-01-18 13:59             ` Jiri Olsa
2012-01-02  9:04         ` [PATCH 3/7] ftrace, perf: Add open/close tracepoint perf registration actions Jiri Olsa
2012-01-02  9:04         ` [PATCH 4/7] ftrace, perf: Add add/del " Jiri Olsa
2012-01-02  9:04         ` [PATCH 5/7] ftrace, perf: Add support to use function tracepoint in perf Jiri Olsa
2012-01-02  9:04         ` [PATCH 6/7] ftrace, perf: Distinguish ftrace function event field type Jiri Olsa
2012-01-02  9:04         ` [PATCH 7/7] ftrace, perf: Add filter support for function trace event Jiri Olsa
2012-01-16 23:59           ` Steven Rostedt
2012-01-18 13:45             ` Jiri Olsa
2012-01-16  8:57         ` [PATCHv5 0/7] ftrace, perf: Adding support to use function trace Jiri Olsa
2012-01-16 16:17           ` Steven Rostedt
2012-01-18 18:44         ` [PATCHv6 " Jiri Olsa
2012-01-18 18:44           ` [PATCH 1/7] ftrace: Change filter/notrace set functions to return exit code Jiri Olsa
2012-01-19 16:31             ` Frederic Weisbecker
2012-01-18 18:44           ` [PATCH 2/7] ftrace: Add enable/disable ftrace_ops control interface Jiri Olsa
2012-01-20 17:02             ` Frederic Weisbecker
2012-01-25 23:13               ` Steven Rostedt
2012-01-26  2:37                 ` Frederic Weisbecker
2012-01-27 10:37                   ` Jiri Olsa
2012-01-27 10:38                     ` Jiri Olsa
2012-01-27 16:40                     ` Frederic Weisbecker
2012-01-27 16:54                       ` Jiri Olsa
2012-01-27 17:02                         ` Frederic Weisbecker
2012-01-27 17:20                           ` Jiri Olsa
2012-01-28 16:39                             ` Frederic Weisbecker
2012-01-27 17:21                         ` Steven Rostedt
2012-01-18 18:44           ` [PATCH 3/7] ftrace, perf: Add open/close tracepoint perf registration actions Jiri Olsa
2012-01-18 18:44           ` [PATCH 4/7] ftrace, perf: Add add/del " Jiri Olsa
2012-01-18 18:44           ` [PATCH 5/7] ftrace, perf: Add support to use function tracepoint in perf Jiri Olsa
2012-01-18 18:44           ` [PATCH 6/7] ftrace, perf: Distinguish ftrace function event field type Jiri Olsa
2012-01-18 18:44           ` [PATCH 7/7] ftrace, perf: Add filter support for function trace event Jiri Olsa
2012-01-18 21:43           ` [PATCHv6 0/7] ftrace, perf: Adding support to use function trace Steven Rostedt
2012-01-28 18:43           ` [PATCHv7 " Jiri Olsa
2012-01-28 18:43             ` [PATCH 1/7] ftrace: Change filter/notrace set functions to return exit code Jiri Olsa
2012-01-30  5:42               ` Frederic Weisbecker
2012-01-28 18:43             ` [PATCH 2/7] ftrace: Add enable/disable ftrace_ops control interface Jiri Olsa
2012-01-30  5:59               ` Frederic Weisbecker
2012-01-30  9:18                 ` Jiri Olsa
2012-02-03 13:42                   ` Steven Rostedt
2012-02-03 13:50                     ` Jiri Olsa
2012-02-03 14:08                       ` Steven Rostedt
2012-02-03 14:22                         ` [PATCHv8 0/2] first 2 patches passed review Jiri Olsa
2012-02-03 14:22                           ` [PATCH 1/2] ftrace: Change filter/notrace set functions to return exit code Jiri Olsa
2012-02-03 14:22                           ` [PATCH 2/2] ftrace: Add enable/disable ftrace_ops control interface Jiri Olsa
2012-02-04 13:24                           ` [PATCHv8 0/2] first 2 patches passed review Frederic Weisbecker
2012-02-03 13:40               ` [PATCH 2/7] ftrace: Add enable/disable ftrace_ops control interface Steven Rostedt
2012-01-28 18:43             ` [PATCH 3/7] ftrace, perf: Add open/close tracepoint perf registration actions Jiri Olsa
2012-02-02 17:35               ` Frederic Weisbecker
2012-02-03 10:23                 ` Jiri Olsa
2012-01-28 18:43             ` [PATCH 4/7] ftrace, perf: Add add/del " Jiri Olsa
2012-02-02 17:42               ` Frederic Weisbecker
2012-01-28 18:43             ` [PATCH 5/7] ftrace, perf: Add support to use function tracepoint in perf Jiri Olsa
2012-02-02 18:14               ` Frederic Weisbecker
2012-02-03 12:54                 ` Jiri Olsa
2012-02-03 13:00                   ` Jiri Olsa
2012-02-03 14:07                     ` Steven Rostedt
2012-02-04 13:21                   ` Frederic Weisbecker
2012-02-06 19:35                     ` Steven Rostedt
2012-02-03 13:53                 ` Steven Rostedt
2012-01-28 18:43             ` [PATCH 6/7] ftrace, perf: Distinguish ftrace function event field type Jiri Olsa
2012-02-03 14:16               ` Steven Rostedt
2012-01-28 18:43             ` [PATCH 7/7] ftrace, perf: Add filter support for function trace event Jiri Olsa
2012-02-07  0:20               ` Jiri Olsa
2012-02-07 19:44             ` [PATCHv8 0/8] ftrace, perf: Adding support to use function trace Jiri Olsa
2012-02-07 19:44               ` [PATCH 1/8] ftrace: Change filter/notrace set functions to return exit code Jiri Olsa
2012-02-07 19:44               ` [PATCH 2/8] ftrace: Add enable/disable ftrace_ops control interface Jiri Olsa
2012-02-07 19:44               ` [PATCH 3/8] ftrace, perf: Add open/close tracepoint perf registration actions Jiri Olsa
2012-02-07 19:44               ` [PATCH 4/8] ftrace, perf: Add add/del " Jiri Olsa
2012-02-07 19:44               ` [PATCH 5/8] ftrace: Add FTRACE_ENTRY_REG macro to allow event registration Jiri Olsa
2012-02-07 19:44               ` [PATCH 6/8] ftrace, perf: Add support to use function tracepoint in perf Jiri Olsa
2012-02-07 19:44               ` [PATCH 7/8] ftrace: Allow to specify filter field type for ftrace events Jiri Olsa
2012-02-07 19:44               ` [PATCH 8/8] ftrace, perf: Add filter support for function trace event Jiri Olsa
2012-02-10 13:27               ` [PATCHv8 0/8] ftrace, perf: Adding support to use function trace Steven Rostedt
2012-02-10 14:45                 ` Steven Rostedt
2012-02-10 16:07                   ` Jiri Olsa
2012-02-10 16:48                     ` Frederic Weisbecker
2012-02-10 18:00                       ` Steven Rostedt
2012-02-10 18:05                         ` Frederic Weisbecker
2012-02-10 18:23                           ` David Ahern
2012-02-13 18:02               ` Steven Rostedt
  -- strict thread matches above, loose matches on Subject: below --
2012-02-22 14:40 [PATCH 0/9] [GIT PULL] perf/tracing: fixes and add function trace to perf Steven Rostedt
2012-02-22 14:40 ` [PATCH 9/9] ftrace, perf: Add filter support for function trace event Steven Rostedt

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1322510824.17003.18.camel@frodo \
    --to=rostedt@goodmis.org \
    --cc=acme@ghostprotocols.net \
    --cc=fweisbec@gmail.com \
    --cc=jolsa@redhat.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@redhat.com \
    --cc=paulus@samba.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.