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/

Reply via email to