aboutsummaryrefslogtreecommitdiffstats
path: root/Documentation/perf_counter/builtin-report.c
diff options
context:
space:
mode:
authorPeter Zijlstra <a.p.zijlstra@chello.nl>2009-05-27 14:20:28 -0400
committerIngo Molnar <mingo@elte.hu>2009-05-27 15:44:15 -0400
commit55e5ec41a9de46b6ca06031f4fbdfdfc76dc24dc (patch)
tree061370ab9a4ec8a6ff03bd3fe8a7b57d58538bfd /Documentation/perf_counter/builtin-report.c
parent992444b173f35997f96f5cbb214f0de81d1b97ff (diff)
pref_counter: tools: report: Add dso sorting
Signed-off-by: Peter Zijlstra <a.p.zijlstra@chello.nl> Cc: Paul Mackerras <paulus@samba.org> Cc: Corey Ashford <cjashfor@linux.vnet.ibm.com> Cc: Arnaldo Carvalho de Melo <acme@redhat.com> Cc: John Kacur <jkacur@redhat.com> Cc: Mike Galbraith <efault@gmx.de> LKML-Reference: <20090527182101.229504802@chello.nl> Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'Documentation/perf_counter/builtin-report.c')
-rw-r--r--Documentation/perf_counter/builtin-report.c30
1 files changed, 30 insertions, 0 deletions
diff --git a/Documentation/perf_counter/builtin-report.c b/Documentation/perf_counter/builtin-report.c
index a634022bae0..30e12c7f710 100644
--- a/Documentation/perf_counter/builtin-report.c
+++ b/Documentation/perf_counter/builtin-report.c
@@ -761,6 +761,35 @@ static struct sort_entry sort_comm = {
761}; 761};
762 762
763static int64_t 763static int64_t
764sort__dso_cmp(struct hist_entry *left, struct hist_entry *right)
765{
766 struct dso *dso_l = left->dso;
767 struct dso *dso_r = right->dso;
768
769 if (!dso_l || !dso_r) {
770 if (!dso_l && !dso_r)
771 return 0;
772 else if (!dso_l)
773 return -1;
774 else
775 return 1;
776 }
777
778 return strcmp(dso_l->name, dso_r->name);
779}
780
781static size_t
782sort__dso_print(FILE *fp, struct hist_entry *self)
783{
784 return fprintf(fp, "%64s ", self->dso ? self->dso->name : "<unknown>");
785}
786
787static struct sort_entry sort_dso = {
788 .cmp = sort__dso_cmp,
789 .print = sort__dso_print,
790};
791
792static int64_t
764sort__sym_cmp(struct hist_entry *left, struct hist_entry *right) 793sort__sym_cmp(struct hist_entry *left, struct hist_entry *right)
765{ 794{
766 uint64_t ip_l, ip_r; 795 uint64_t ip_l, ip_r;
@@ -809,6 +838,7 @@ struct sort_dimension {
809static struct sort_dimension sort_dimensions[] = { 838static struct sort_dimension sort_dimensions[] = {
810 { .name = "pid", .entry = &sort_thread, }, 839 { .name = "pid", .entry = &sort_thread, },
811 { .name = "comm", .entry = &sort_comm, }, 840 { .name = "comm", .entry = &sort_comm, },
841 { .name = "dso", .entry = &sort_dso, },
812 { .name = "symbol", .entry = &sort_sym, }, 842 { .name = "symbol", .entry = &sort_sym, },
813}; 843};
814 844