perf record: Uniquify hybrid event name
For perf-record, it would be useful to tell user the pmu which the event belongs to. For example, # perf record -a -- sleep 1 # perf report # To display the perf.data header info, please use --header/--header-only options. # # # Total Lost Samples: 0 # # Samples: 106 of event 'cpu_core/cycles/' # Event count (approx.): 22043448 # # Overhead Command Shared Object Symbol # ........ ............ ....................... ............................ # ... Signed-off-by: Jin Yao <yao.jin@linux.intel.com> Reviewed-by: Jiri Olsa <jolsa@kernel.org> Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com> Cc: Andi Kleen <ak@linux.intel.com> Cc: Ingo Molnar <mingo@redhat.com> Cc: Kan Liang <kan.liang@intel.com> Cc: Peter Zijlstra <peterz@infradead.org> Link: https://lore.kernel.org/r/20210427070139.25256-18-yao.jin@linux.intel.com Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
This commit is contained in:
parent
660e533e87
commit
91c0f5ec81
@ -1605,6 +1605,32 @@ static void hit_auxtrace_snapshot_trigger(struct record *rec)
|
||||
}
|
||||
}
|
||||
|
||||
static void record__uniquify_name(struct record *rec)
|
||||
{
|
||||
struct evsel *pos;
|
||||
struct evlist *evlist = rec->evlist;
|
||||
char *new_name;
|
||||
int ret;
|
||||
|
||||
if (!perf_pmu__has_hybrid())
|
||||
return;
|
||||
|
||||
evlist__for_each_entry(evlist, pos) {
|
||||
if (!evsel__is_hybrid(pos))
|
||||
continue;
|
||||
|
||||
if (strchr(pos->name, '/'))
|
||||
continue;
|
||||
|
||||
ret = asprintf(&new_name, "%s/%s/",
|
||||
pos->pmu_name, pos->name);
|
||||
if (ret) {
|
||||
free(pos->name);
|
||||
pos->name = new_name;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static int __cmd_record(struct record *rec, int argc, const char **argv)
|
||||
{
|
||||
int err;
|
||||
@ -1709,6 +1735,8 @@ static int __cmd_record(struct record *rec, int argc, const char **argv)
|
||||
if (data->is_pipe && rec->evlist->core.nr_entries == 1)
|
||||
rec->opts.sample_id = true;
|
||||
|
||||
record__uniquify_name(rec);
|
||||
|
||||
if (record__open(rec) != 0) {
|
||||
err = -1;
|
||||
goto out_child;
|
||||
|
Loading…
Reference in New Issue
Block a user