forked from luck/tmp_suning_uos_patched
perf report: Indicate JITed code better in report
Print [TID] tid %d instead of the crypted /tmp/perf-%d.map default. % cat >loop.java public class loop { public static void main(String[] args) { for (;;); } } ^D % javac loop.java % perf record java loop ^C Before: % perf report --stdio ... 56.09% java perf-34724.map [.] 0x00007fd5bd021896 19.12% java perf-34724.map [.] 0x00007fd5bd021887 9.79% java perf-34724.map [.] 0x00007fd5bd021783 8.97% java perf-34724.map [.] 0x00007fd5bd02175b After: % perf report --stdio ... 56.09% java [JIT] tid 34724 [.] 0x00007fd5bd021896 19.12% java [JIT] tid 34724 [.] 0x00007fd5bd021887 9.79% java [JIT] tid 34724 [.] 0x00007fd5bd021783 8.97% java [JIT] tid 34724 [.] 0x00007fd5bd02175b Signed-off-by: Andi Kleen <ak@linux.intel.com> Acked-by: Jiri Olsa <jolsa@kernel.org> Tested-by: Arnaldo Carvalho de Melo <acme@redhat.com> LPU-Reference: 20190314225002.30108-7-andi@firstfloor.org Link: https://lkml.kernel.org/n/tip-r17l6py9g0sezb7mi1f286gt@git.kernel.org Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
This commit is contained in:
parent
702fb9b415
commit
a4e7e6efab
|
@ -1141,28 +1141,34 @@ void dso__set_short_name(struct dso *dso, const char *name, bool name_allocated)
|
|||
|
||||
static void dso__set_basename(struct dso *dso)
|
||||
{
|
||||
/*
|
||||
* basename() may modify path buffer, so we must pass
|
||||
* a copy.
|
||||
*/
|
||||
char *base, *lname = strdup(dso->long_name);
|
||||
char *base, *lname;
|
||||
int tid;
|
||||
|
||||
if (!lname)
|
||||
return;
|
||||
if (sscanf(dso->long_name, "/tmp/perf-%d.map", &tid) == 1) {
|
||||
if (asprintf(&base, "[JIT] tid %d", tid) < 0)
|
||||
return;
|
||||
} else {
|
||||
/*
|
||||
* basename() may modify path buffer, so we must pass
|
||||
* a copy.
|
||||
*/
|
||||
lname = strdup(dso->long_name);
|
||||
if (!lname)
|
||||
return;
|
||||
|
||||
/*
|
||||
* basename() may return a pointer to internal
|
||||
* storage which is reused in subsequent calls
|
||||
* so copy the result.
|
||||
*/
|
||||
base = strdup(basename(lname));
|
||||
/*
|
||||
* basename() may return a pointer to internal
|
||||
* storage which is reused in subsequent calls
|
||||
* so copy the result.
|
||||
*/
|
||||
base = strdup(basename(lname));
|
||||
|
||||
free(lname);
|
||||
free(lname);
|
||||
|
||||
if (!base)
|
||||
return;
|
||||
|
||||
dso__set_short_name(dso, base, true);
|
||||
if (!base)
|
||||
return;
|
||||
}
|
||||
dso__set_short_name(dso, base, true);
|
||||
}
|
||||
|
||||
int dso__name_len(const struct dso *dso)
|
||||
|
|
Loading…
Reference in New Issue
Block a user