From: Namhyung Kim <[email protected]> Most tracepoint events already have their system and event name in ->name field so that searching whole event tracing directory for each evsel to match given id is suboptimal.
Cc: Jiri Olsa <[email protected]> Cc: Frederic Weisbecker <[email protected]> Signed-off-by: Namhyung Kim <[email protected]> --- tools/perf/util/trace-event-info.c | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/tools/perf/util/trace-event-info.c b/tools/perf/util/trace-event-info.c index ab18bf12d54a..dcfc1869c9af 100644 --- a/tools/perf/util/trace-event-info.c +++ b/tools/perf/util/trace-event-info.c @@ -414,12 +414,31 @@ get_tracepoints_path(struct list_head *pattrs) if (pos->attr.type != PERF_TYPE_TRACEPOINT) continue; ++nr_tracepoints; + + if (pos->name && strchr(pos->name, ':')) { + char *str = strchr(pos->name, ':'); + + ppath->next = zalloc(sizeof(path)); + if (!ppath->next) + goto error; + + ppath->next->system = strndup(pos->name, str - pos->name); + ppath->next->name = strdup(str+1); + + if (!ppath->next->system || !ppath->next->name) + goto error; + + goto next; + } + ppath->next = tracepoint_id_to_path(pos->attr.config); if (!ppath->next) { +error: pr_debug("No memory to alloc tracepoints list\n"); put_tracepoints_path(&path); return NULL; } +next: ppath = ppath->next; } -- 1.7.11.7 -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/

