perf evsel: Handle all event types in perf_evsel__name
Commit-ID: a446083604fe2bafe0f46b1e95b22f7b06e3a63f Gitweb: http://git.kernel.org/tip/a446083604fe2bafe0f46b1e95b22f7b06e3a63f Author: Arnaldo Carvalho de Melo <[email protected]> AuthorDate: Tue, 12 Jun 2012 10:29:12 -0300 Committer: Arnaldo Carvalho de Melo <[email protected]> CommitDate: Tue, 19 Jun 2012 13:06:20 -0300
perf evsel: Handle all event types in perf_evsel__name
Now to convert all event_name users to perf_evsel__name.
Cc David Ahern <[email protected]>
Cc Frederic Weisbecker <[email protected]>
Cc Jiri Olsa <[email protected]>
Cc Mike Galbraith <[email protected]>
Cc Namhyung Kim <[email protected]>
Cc Paul Mackerras <[email protected]>
Cc Peter Zijlstra <[email protected]>
Cc Stephane Eranian <[email protected]>
Signed-off-by Arnaldo Carvalho de Melo <[email protected]>
--- tools/perf/util/evsel.c | 24 +++++++++++------------- tools/perf/util/parse-events.c | 21 +++------------------ 2 files changed, 14 insertions(+), 31 deletions(-)
tools/perf/util/evsel.c +11 -13
@@ -252,6 +252,11 @@ static int perf_evsel__hw_cache_name(struct perf_evsel *evsel, char *bf, size_treturn ret +perf_evsel__add_modifiers (evsel, bf + ret, size - ret); } +static int perf_evsel__tracepoint_name (struct perf_evsel *evsel,char *bf,size_t size) +{ +return scnprintf (bf, size,"%s" , evsel->name ?:"unknown tracepoint" ); +} +int perf_evsel__name (struct perf_evsel *evsel,char *bf,size_t size) {int ret;
@@ -273,20 +278,13 @@ int perf_evsel__name(struct perf_evsel *evsel, char *bf, size_t size) ret =perf_evsel__sw_name (evsel, bf, size);break ; +case PERF_TYPE_TRACEPOINT : + ret =perf_evsel__tracepoint_name (evsel, bf, size); +break ; +default : -/* -* FIXME -* -* This is the minimal perf_evsel__name so that we can -* reconstruct event names taking into account event modifiers. -* -* The old event_name uses it now for raw anr hw events, so that -* we don't drag all the parsing stuff into the python binding. -* -* On the next devel cycle the rest of the event naming will be -* brought here. -*/ -return 0 ; + ret =scnprintf (bf, size,"%s" ,"unknown attr type" ); +break ; }return ret;
tools/perf/util/parse-events.c +3 -18
@@ -203,24 +203,9 @@ const char *event_type(int type)const char *event_name (struct perf_evsel *evsel) { -u64 config = evsel->attr.config; -int type = evsel->attr.type; - -if (type ==PERF_TYPE_RAW || type ==PERF_TYPE_HARDWARE || - type ==PERF_TYPE_SOFTWARE || type ==PERF_TYPE_HW_CACHE ) { -/* -* XXX minimal fix, see comment on perf_evsen__name, this static buffer -* will go away together with event_name in the next devel cycle. -*/ -static char bf[128 ]; -perf_evsel__name (evsel, bf,sizeof (bf)); -return bf; - } - -if (evsel->name) -return evsel->name; - -return __event_name (type, config); +static char bf[128 ]; +perf_evsel__name (evsel, bf,sizeof (bf)); +return bf; }const char *__event_name (int type,u64 config)