diff options
author | Namhyung Kim <namhyung.kim@lge.com> | 2013-01-22 18:09:47 +0900 |
---|---|---|
committer | Arnaldo Carvalho de Melo <acme@redhat.com> | 2013-01-31 13:07:49 -0300 |
commit | e6ab07d027d47e55d8a5c0f33b16dfdd3e18c96f (patch) | |
tree | e53b70cb5b0517e1783cd10f888b775a4d8f25f3 /tools/perf/util/evsel.c | |
parent | 00c7e1f10c6b8ae8a031f5c6a58ecd15d20c52cb (diff) | |
download | kernel_goldelico_gta04-e6ab07d027d47e55d8a5c0f33b16dfdd3e18c96f.zip kernel_goldelico_gta04-e6ab07d027d47e55d8a5c0f33b16dfdd3e18c96f.tar.gz kernel_goldelico_gta04-e6ab07d027d47e55d8a5c0f33b16dfdd3e18c96f.tar.bz2 |
perf evlist: Add --group option
Add '-g/--group' option for showing event groups. For simplicity it is
currently not compatible with other options.
$ perf evlist --group
{ref-cycles,cycles}
$ perf evlist
ref-cycles
cycles
Suggested-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Signed-off-by: Namhyung Kim <namhyung@kernel.org>
Cc: Ingo Molnar <mingo@kernel.org>
Cc: Jiri Olsa <jolsa@redhat.com>
Cc: Paul Mackerras <paulus@samba.org>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Cc: Stephane Eranian <eranian@google.com>
Link: http://lkml.kernel.org/r/1358845787-1350-20-git-send-email-namhyung@kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Diffstat (limited to 'tools/perf/util/evsel.c')
-rw-r--r-- | tools/perf/util/evsel.c | 24 |
1 files changed, 22 insertions, 2 deletions
diff --git a/tools/perf/util/evsel.c b/tools/perf/util/evsel.c index 94e7404..a547015 100644 --- a/tools/perf/util/evsel.c +++ b/tools/perf/util/evsel.c @@ -1389,7 +1389,27 @@ int perf_evsel__fprintf(struct perf_evsel *evsel, struct perf_attr_details *details, FILE *fp) { bool first = true; - int printed = fprintf(fp, "%s", perf_evsel__name(evsel)); + int printed = 0; + + if (symbol_conf.event_group) { + struct perf_evsel *pos; + + if (!perf_evsel__is_group_leader(evsel)) + return 0; + + if (evsel->nr_members > 1) + printed += fprintf(fp, "%s{", evsel->group_name ?: ""); + + printed += fprintf(fp, "%s", perf_evsel__name(evsel)); + for_each_group_member(pos, evsel) + printed += fprintf(fp, ",%s", perf_evsel__name(pos)); + + if (evsel->nr_members > 1) + printed += fprintf(fp, "}"); + goto out; + } + + printed += fprintf(fp, "%s", perf_evsel__name(evsel)); if (details->verbose || details->freq) { printed += comma_fprintf(fp, &first, " sample_freq=%" PRIu64, @@ -1430,7 +1450,7 @@ int perf_evsel__fprintf(struct perf_evsel *evsel, if_print(bp_type); if_print(branch_sample_type); } - +out: fputc('\n', fp); return ++printed; } |