diff options
author | Ingo Molnar <mingo@kernel.org> | 2016-06-29 05:34:41 -0400 |
---|---|---|
committer | Ingo Molnar <mingo@kernel.org> | 2016-06-29 05:34:41 -0400 |
commit | d905768c9e1addfa35d9731dbaa9242e8991f6ac (patch) | |
tree | f80cc76eaf80b553799fa93358054fbfb94907e3 /tools/perf/util/annotate.c | |
parent | d4cf1949f9689314aef962eea95df84a8288d097 (diff) | |
parent | ebccba3fe0a02f622f80e6be0e8ecb1a9a3ed983 (diff) |
Merge tag 'perf-core-for-mingo-20160628' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/core
Pull perf/core improvements and fixes from Arnaldo Carvalho de Melo:
New features:
- Generate comm, fork and exit events when converting perf.data files to CTF (Wang Nan)
Infrastructure changes:
- Add libbabeltrace to build-test (Wang Nan)
- 'perf record' prep work to support multiple evlists (Wang Nan)
- Remove unused hist_entry__annotate function (Ravi Bangoria)
- Add more toolchain triplets (Ravi Bangoria)
- Update message for slang devel packages on Ubuntu (Neeraj Badlani)
- Generalize handling of 'ret' instructions in the annotate TUI (Naveen N. Rao)
- Use proper dso name for is_regular_file, fixing device file handling (Jiri Olsa)
Build Fixes:
- Add missing config.h include, fixing the build with libbabeltrace (Jiri Olsa)
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Diffstat (limited to 'tools/perf/util/annotate.c')
-rw-r--r-- | tools/perf/util/annotate.c | 15 |
1 files changed, 10 insertions, 5 deletions
diff --git a/tools/perf/util/annotate.c b/tools/perf/util/annotate.c index 7e5a1e8874ce..c385fecb9d32 100644 --- a/tools/perf/util/annotate.c +++ b/tools/perf/util/annotate.c | |||
@@ -354,6 +354,15 @@ static struct ins_ops nop_ops = { | |||
354 | .scnprintf = nop__scnprintf, | 354 | .scnprintf = nop__scnprintf, |
355 | }; | 355 | }; |
356 | 356 | ||
357 | static struct ins_ops ret_ops = { | ||
358 | .scnprintf = ins__raw_scnprintf, | ||
359 | }; | ||
360 | |||
361 | bool ins__is_ret(const struct ins *ins) | ||
362 | { | ||
363 | return ins->ops == &ret_ops; | ||
364 | } | ||
365 | |||
357 | static struct ins instructions[] = { | 366 | static struct ins instructions[] = { |
358 | { .name = "add", .ops = &mov_ops, }, | 367 | { .name = "add", .ops = &mov_ops, }, |
359 | { .name = "addl", .ops = &mov_ops, }, | 368 | { .name = "addl", .ops = &mov_ops, }, |
@@ -444,6 +453,7 @@ static struct ins instructions[] = { | |||
444 | { .name = "xadd", .ops = &mov_ops, }, | 453 | { .name = "xadd", .ops = &mov_ops, }, |
445 | { .name = "xbeginl", .ops = &jump_ops, }, | 454 | { .name = "xbeginl", .ops = &jump_ops, }, |
446 | { .name = "xbeginq", .ops = &jump_ops, }, | 455 | { .name = "xbeginq", .ops = &jump_ops, }, |
456 | { .name = "retq", .ops = &ret_ops, }, | ||
447 | }; | 457 | }; |
448 | 458 | ||
449 | static int ins__key_cmp(const void *name, const void *insp) | 459 | static int ins__key_cmp(const void *name, const void *insp) |
@@ -1676,11 +1686,6 @@ int symbol__tty_annotate(struct symbol *sym, struct map *map, | |||
1676 | return 0; | 1686 | return 0; |
1677 | } | 1687 | } |
1678 | 1688 | ||
1679 | int hist_entry__annotate(struct hist_entry *he, size_t privsize) | ||
1680 | { | ||
1681 | return symbol__annotate(he->ms.sym, he->ms.map, privsize); | ||
1682 | } | ||
1683 | |||
1684 | bool ui__has_annotation(void) | 1689 | bool ui__has_annotation(void) |
1685 | { | 1690 | { |
1686 | return use_browser == 1 && perf_hpp_list.sym; | 1691 | return use_browser == 1 && perf_hpp_list.sym; |