diff options
author | Arnaldo Carvalho de Melo <acme@redhat.com> | 2010-01-27 18:05:50 -0500 |
---|---|---|
committer | Ingo Molnar <mingo@elte.hu> | 2010-01-29 03:20:57 -0500 |
commit | a19afe46412452fef89cc623873a8931b3685944 (patch) | |
tree | f763293c14d5c3b50c0a8de2fe1b48e17dd3c925 /tools/perf/util | |
parent | 72b8fa1730207274f6818b47b891ce5dff79287e (diff) |
perf symbols: Factor out dso__load_vmlinux_path()
So that we can call it directly from regression tests, and also
to reduce the size of dso__load_kernel_sym(), making it more
clear.
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Cc: Frédéric Weisbecker <fweisbec@gmail.com>
Cc: Mike Galbraith <efault@gmx.de>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Cc: Paul Mackerras <paulus@samba.org>
LKML-Reference: <1264633557-17597-2-git-send-email-acme@infradead.org>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'tools/perf/util')
-rw-r--r-- | tools/perf/util/symbol.c | 38 | ||||
-rw-r--r-- | tools/perf/util/symbol.h | 2 |
2 files changed, 26 insertions, 14 deletions
diff --git a/tools/perf/util/symbol.c b/tools/perf/util/symbol.c index f1f609dcf9a1..26ec603083e0 100644 --- a/tools/perf/util/symbol.c +++ b/tools/perf/util/symbol.c | |||
@@ -1578,6 +1578,27 @@ static int dso__load_vmlinux(struct dso *self, struct map *map, | |||
1578 | return err; | 1578 | return err; |
1579 | } | 1579 | } |
1580 | 1580 | ||
1581 | int dso__load_vmlinux_path(struct dso *self, struct map *map, | ||
1582 | struct perf_session *session, symbol_filter_t filter) | ||
1583 | { | ||
1584 | int i, err = 0; | ||
1585 | |||
1586 | pr_debug("Looking at the vmlinux_path (%d entries long)\n", | ||
1587 | vmlinux_path__nr_entries); | ||
1588 | |||
1589 | for (i = 0; i < vmlinux_path__nr_entries; ++i) { | ||
1590 | err = dso__load_vmlinux(self, map, session, vmlinux_path[i], | ||
1591 | filter); | ||
1592 | if (err > 0) { | ||
1593 | pr_debug("Using %s for symbols\n", vmlinux_path[i]); | ||
1594 | dso__set_long_name(self, strdup(vmlinux_path[i])); | ||
1595 | break; | ||
1596 | } | ||
1597 | } | ||
1598 | |||
1599 | return err; | ||
1600 | } | ||
1601 | |||
1581 | static int dso__load_kernel_sym(struct dso *self, struct map *map, | 1602 | static int dso__load_kernel_sym(struct dso *self, struct map *map, |
1582 | struct perf_session *session, symbol_filter_t filter) | 1603 | struct perf_session *session, symbol_filter_t filter) |
1583 | { | 1604 | { |
@@ -1606,20 +1627,9 @@ static int dso__load_kernel_sym(struct dso *self, struct map *map, | |||
1606 | } | 1627 | } |
1607 | 1628 | ||
1608 | if (vmlinux_path != NULL) { | 1629 | if (vmlinux_path != NULL) { |
1609 | int i; | 1630 | err = dso__load_vmlinux_path(self, map, session, filter); |
1610 | pr_debug("Looking at the vmlinux_path (%d entries long)\n", | 1631 | if (err > 0) |
1611 | vmlinux_path__nr_entries); | 1632 | goto out_fixup; |
1612 | for (i = 0; i < vmlinux_path__nr_entries; ++i) { | ||
1613 | err = dso__load_vmlinux(self, map, session, | ||
1614 | vmlinux_path[i], filter); | ||
1615 | if (err > 0) { | ||
1616 | pr_debug("Using %s for symbols\n", | ||
1617 | vmlinux_path[i]); | ||
1618 | dso__set_long_name(self, | ||
1619 | strdup(vmlinux_path[i])); | ||
1620 | goto out_fixup; | ||
1621 | } | ||
1622 | } | ||
1623 | } | 1633 | } |
1624 | 1634 | ||
1625 | /* | 1635 | /* |
diff --git a/tools/perf/util/symbol.h b/tools/perf/util/symbol.h index ffe0b0f2e5d3..a94997aeb334 100644 --- a/tools/perf/util/symbol.h +++ b/tools/perf/util/symbol.h | |||
@@ -129,6 +129,8 @@ struct perf_session; | |||
129 | 129 | ||
130 | int dso__load(struct dso *self, struct map *map, struct perf_session *session, | 130 | int dso__load(struct dso *self, struct map *map, struct perf_session *session, |
131 | symbol_filter_t filter); | 131 | symbol_filter_t filter); |
132 | int dso__load_vmlinux_path(struct dso *self, struct map *map, | ||
133 | struct perf_session *session, symbol_filter_t filter); | ||
132 | void dsos__fprintf(FILE *fp); | 134 | void dsos__fprintf(FILE *fp); |
133 | size_t dsos__fprintf_buildid(FILE *fp, bool with_hits); | 135 | size_t dsos__fprintf_buildid(FILE *fp, bool with_hits); |
134 | 136 | ||