Re: [PATCH 02/15] perf util: Use evsel->name to get tracepoint_paths

From: Jiri Olsa
Date: Wed May 15 2013 - 10:59:35 EST


On Tue, May 14, 2013 at 07:13:46PM +0900, Namhyung Kim wrote:
> From: Namhyung Kim <namhyung.kim@xxxxxxx>

SNIP

> };
>
> extern struct tracepoint_path *tracepoint_id_to_path(u64 config);
> +extern struct tracepoint_path *tracepoint_name_to_path(const char *name);
> extern bool have_tracepoints(struct list_head *evlist);
>
> const char *event_type(int type);
> diff --git a/tools/perf/util/trace-event-info.c b/tools/perf/util/trace-event-info.c
> index ab18bf12d54a..bfcaeac7ef9d 100644
> --- a/tools/perf/util/trace-event-info.c
> +++ b/tools/perf/util/trace-event-info.c
> @@ -414,12 +414,23 @@ get_tracepoints_path(struct list_head *pattrs)
> if (pos->attr.type != PERF_TYPE_TRACEPOINT)
> continue;
> ++nr_tracepoints;
> +
> + if (pos->name) {
> + ppath->next = tracepoint_name_to_path(pos->name);

yep, looks like big time saver ;)

> + if (!ppath->next)
> + goto error;

hum, the tracepoint_name_to_path fails also because of the
malformed tracepoint name.. then the error message is
misleading.. but not quite sure this could happen

jirka

> +
> + 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 majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/