diff options
author | Arnaldo Carvalho de Melo <acme@redhat.com> | 2010-01-14 20:45:30 -0500 |
---|---|---|
committer | Ingo Molnar <mingo@elte.hu> | 2010-01-16 04:58:49 -0500 |
commit | 88d3d9b7c843a42cb73c55a2d13cd1041da31fb9 (patch) | |
tree | 65405bd819476046cda93ac1ccda8cca39becab4 /tools/perf/util/symbol.c | |
parent | 59ee68ecd1561a233fb6ad351980bea8402533e7 (diff) |
perf buildid-list: Introduce --with-hits option
Using this option 'perf buildid-list' will process all samples,
marking the DSOs that had some hits to list just them.
This in turn will be used by a new porcelain, 'perf archive',
that will be just a shell script to create a tarball from the
'perf buildid-list --with-hits' output and the files cached by
'perf record' in ~/.debug.
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: <1263519930-22803-4-git-send-email-acme@infradead.org>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'tools/perf/util/symbol.c')
-rw-r--r-- | tools/perf/util/symbol.c | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/tools/perf/util/symbol.c b/tools/perf/util/symbol.c index 4267138c7bbe..a4e745934584 100644 --- a/tools/perf/util/symbol.c +++ b/tools/perf/util/symbol.c | |||
@@ -1716,22 +1716,25 @@ void dsos__fprintf(FILE *fp) | |||
1716 | __dsos__fprintf(&dsos__user, fp); | 1716 | __dsos__fprintf(&dsos__user, fp); |
1717 | } | 1717 | } |
1718 | 1718 | ||
1719 | static size_t __dsos__fprintf_buildid(struct list_head *head, FILE *fp) | 1719 | static size_t __dsos__fprintf_buildid(struct list_head *head, FILE *fp, |
1720 | bool with_hits) | ||
1720 | { | 1721 | { |
1721 | struct dso *pos; | 1722 | struct dso *pos; |
1722 | size_t ret = 0; | 1723 | size_t ret = 0; |
1723 | 1724 | ||
1724 | list_for_each_entry(pos, head, node) { | 1725 | list_for_each_entry(pos, head, node) { |
1726 | if (with_hits && !pos->hit) | ||
1727 | continue; | ||
1725 | ret += dso__fprintf_buildid(pos, fp); | 1728 | ret += dso__fprintf_buildid(pos, fp); |
1726 | ret += fprintf(fp, " %s\n", pos->long_name); | 1729 | ret += fprintf(fp, " %s\n", pos->long_name); |
1727 | } | 1730 | } |
1728 | return ret; | 1731 | return ret; |
1729 | } | 1732 | } |
1730 | 1733 | ||
1731 | size_t dsos__fprintf_buildid(FILE *fp) | 1734 | size_t dsos__fprintf_buildid(FILE *fp, bool with_hits) |
1732 | { | 1735 | { |
1733 | return (__dsos__fprintf_buildid(&dsos__kernel, fp) + | 1736 | return (__dsos__fprintf_buildid(&dsos__kernel, fp, with_hits) + |
1734 | __dsos__fprintf_buildid(&dsos__user, fp)); | 1737 | __dsos__fprintf_buildid(&dsos__user, fp, with_hits)); |
1735 | } | 1738 | } |
1736 | 1739 | ||
1737 | static struct dso *dsos__create_kernel(const char *vmlinux) | 1740 | static struct dso *dsos__create_kernel(const char *vmlinux) |