Messages in this thread | | | Date | Wed, 10 May 2023 10:48:39 +0300 | Subject | Re: [PATCH 1/4] perf trace-event-info: Add tracepoint_id_to_name() helper | From | Adrian Hunter <> |
| |
On 19/04/23 15:29, Yang Jihong wrote: > Add tracepoint_id_to_name() helper to search for the trace events directory > by given event id and return the corresponding tracepoint. > > Signed-off-by: Yang Jihong <yangjihong1@huawei.com> > --- > tools/perf/util/trace-event-info.c | 13 +++++++++++++ > tools/perf/util/trace-event.h | 6 ++++++ > 2 files changed, 19 insertions(+) > > diff --git a/tools/perf/util/trace-event-info.c b/tools/perf/util/trace-event-info.c > index c24b3a15e319..79907caaf0ca 100644 > --- a/tools/perf/util/trace-event-info.c > +++ b/tools/perf/util/trace-event-info.c > @@ -466,6 +466,19 @@ static struct tracepoint_path *tracepoint_id_to_path(u64 config) > return NULL; > } > > +char *tracepoint_id_to_name(u64 config) > +{ > + char buf[MAX_EVENT_LENGTH]; > + struct tracepoint_path *path = NULL;
Initializer should be tracepoint_id_to_path(config) i.e.
struct tracepoint_path *path = tracepoint_id_to_path(config);
> + > + path = tracepoint_id_to_path(config); > + if (path == NULL) > + return NULL; > + > + snprintf(buf, sizeof(buf), "%s:%s", path->system, path->name);
asprintf() can be used then buf and strdup() are not needed.
> + return strdup(buf); > +} > + > static struct tracepoint_path *tracepoint_name_to_path(const char *name) > { > struct tracepoint_path *path = zalloc(sizeof(*path)); > diff --git a/tools/perf/util/trace-event.h b/tools/perf/util/trace-event.h > index a0cff184b1cd..a69ee29419f3 100644 > --- a/tools/perf/util/trace-event.h > +++ b/tools/perf/util/trace-event.h > @@ -62,6 +62,12 @@ unsigned long long eval_flag(const char *flag); > > int read_tracing_data(int fd, struct list_head *pattrs); > > +/* > + * Return the tracepoint name in the format "subsystem:event_name", > + * callers should free the returned string. > + */ > +char *tracepoint_id_to_name(u64 config); > + > struct tracing_data { > /* size is only valid if temp is 'true' */ > ssize_t size;
| |