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>
This commit is contained in:
Arnaldo Carvalho de Melo
2010-01-14 23:45:30 -02:00
committed by Ingo Molnar
parent 59ee68ecd1
commit 88d3d9b7c8
3 changed files with 43 additions and 6 deletions

View File

@@ -1716,22 +1716,25 @@ void dsos__fprintf(FILE *fp)
__dsos__fprintf(&dsos__user, fp);
}
static size_t __dsos__fprintf_buildid(struct list_head *head, FILE *fp)
static size_t __dsos__fprintf_buildid(struct list_head *head, FILE *fp,
bool with_hits)
{
struct dso *pos;
size_t ret = 0;
list_for_each_entry(pos, head, node) {
if (with_hits && !pos->hit)
continue;
ret += dso__fprintf_buildid(pos, fp);
ret += fprintf(fp, " %s\n", pos->long_name);
}
return ret;
}
size_t dsos__fprintf_buildid(FILE *fp)
size_t dsos__fprintf_buildid(FILE *fp, bool with_hits)
{
return (__dsos__fprintf_buildid(&dsos__kernel, fp) +
__dsos__fprintf_buildid(&dsos__user, fp));
return (__dsos__fprintf_buildid(&dsos__kernel, fp, with_hits) +
__dsos__fprintf_buildid(&dsos__user, fp, with_hits));
}
static struct dso *dsos__create_kernel(const char *vmlinux)