All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v3 1/5] perf tools: Add all matching dynamic sort keys for field name
@ 2016-01-06  0:54 Namhyung Kim
  2016-01-06  0:54 ` [PATCH v3 2/5] perf tools: Add document for dynamic sort keys Namhyung Kim
                   ` (4 more replies)
  0 siblings, 5 replies; 18+ messages in thread
From: Namhyung Kim @ 2016-01-06  0:54 UTC (permalink / raw)
  To: Arnaldo Carvalho de Melo
  Cc: Ingo Molnar, Peter Zijlstra, Jiri Olsa, LKML, David Ahern,
	Steven Rostedt, Frederic Weisbecker, Andi Kleen, Wang Nan

When a perf.data file has multiple events, it's likely to be similar
(tracepoint) events.  In that case, they might have same field name so
add all of them to sort keys instead of bailing out.

In addition, it contains a trivial whitespace fix at callsite of
add_all_dynamic_fields().

Acked-by: Jiri Olsa <jolsa@kernel.org>
Signed-off-by: Namhyung Kim <namhyung@kernel.org>
---
 tools/perf/util/sort.c | 29 ++++++++++++++++++++++++++++-
 1 file changed, 28 insertions(+), 1 deletion(-)

diff --git a/tools/perf/util/sort.c b/tools/perf/util/sort.c
index 59c4c8586d79..9618a64875c0 100644
--- a/tools/perf/util/sort.c
+++ b/tools/perf/util/sort.c
@@ -1965,6 +1965,28 @@ static int add_all_dynamic_fields(struct perf_evlist *evlist, bool raw_trace)
 	return 0;
 }
 
+static int add_all_matching_fields(struct perf_evlist *evlist,
+				   char *field_name, bool raw_trace)
+{
+	int ret = -ESRCH;
+	struct perf_evsel *evsel;
+	struct format_field *field;
+
+	evlist__for_each(evlist, evsel) {
+		if (evsel->attr.type != PERF_TYPE_TRACEPOINT)
+			continue;
+
+		field = pevent_find_any_field(evsel->tp_format, field_name);
+		if (field == NULL)
+			continue;
+
+		ret = __dynamic_dimension__add(evsel, field, raw_trace);
+		if (ret < 0)
+			break;
+	}
+	return ret;
+}
+
 static int add_dynamic_entry(struct perf_evlist *evlist, const char *tok)
 {
 	char *str, *event_name, *field_name, *opt_name;
@@ -1995,7 +2017,12 @@ static int add_dynamic_entry(struct perf_evlist *evlist, const char *tok)
 	}
 
 	if (!strcmp(field_name, "trace_fields")) {
-		ret = add_all_dynamic_fields(evlist ,raw_trace);
+		ret = add_all_dynamic_fields(evlist, raw_trace);
+		goto out;
+	}
+
+	if (event_name == NULL) {
+		ret = add_all_matching_fields(evlist, field_name, raw_trace);
 		goto out;
 	}
 
-- 
2.6.4


^ permalink raw reply related	[flat|nested] 18+ messages in thread

end of thread, other threads:[~2016-01-07  0:08 UTC | newest]

Thread overview: 18+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-01-06  0:54 [PATCH v3 1/5] perf tools: Add all matching dynamic sort keys for field name Namhyung Kim
2016-01-06  0:54 ` [PATCH v3 2/5] perf tools: Add document for dynamic sort keys Namhyung Kim
2016-01-06  0:54 ` [PATCH v3 3/5] perf tools: Fix dynamic sort keys to sort properly Namhyung Kim
2016-01-06 23:06   ` Arnaldo Carvalho de Melo
2016-01-06 23:26     ` Namhyung Kim
2016-01-06 23:31       ` Arnaldo Carvalho de Melo
2016-01-06 23:43         ` Namhyung Kim
2016-01-06 23:50         ` Arnaldo Carvalho de Melo
2016-01-07  0:07           ` Namhyung Kim
2016-01-06  0:55 ` [PATCH v3 4/5] perf tools: Support dynamic sort keys for -F/--fields Namhyung Kim
2016-01-06  0:55 ` [PATCH v3 5/5] perf evlist: Add --trace-fields option to show trace fields Namhyung Kim
2016-01-06 23:10   ` Arnaldo Carvalho de Melo
2016-01-06 23:21     ` Namhyung Kim
2016-01-06 23:29       ` Arnaldo Carvalho de Melo
2016-01-06 23:42         ` Namhyung Kim
2016-01-06 11:19 ` [PATCH v3 1/5] perf tools: Add all matching dynamic sort keys for field name Jiri Olsa
2016-01-06 16:29   ` Arnaldo Carvalho de Melo
2016-01-06 23:09     ` Namhyung Kim

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.