Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 55e5ec41 authored by Peter Zijlstra's avatar Peter Zijlstra Committed by Ingo Molnar
Browse files

pref_counter: tools: report: Add dso sorting



Signed-off-by: default avatarPeter 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: default avatarIngo Molnar <mingo@elte.hu>
parent 992444b1
Loading
Loading
Loading
Loading
+30 −0
Original line number Diff line number Diff line
@@ -760,6 +760,35 @@ static struct sort_entry sort_comm = {
	.print	= sort__comm_print,
};

static int64_t
sort__dso_cmp(struct hist_entry *left, struct hist_entry *right)
{
	struct dso *dso_l = left->dso;
	struct dso *dso_r = right->dso;

	if (!dso_l || !dso_r) {
		if (!dso_l && !dso_r)
			return 0;
		else if (!dso_l)
			return -1;
		else
			return 1;
	}

	return strcmp(dso_l->name, dso_r->name);
}

static size_t
sort__dso_print(FILE *fp, struct hist_entry *self)
{
	return fprintf(fp, "%64s ", self->dso ? self->dso->name : "<unknown>");
}

static struct sort_entry sort_dso = {
	.cmp	= sort__dso_cmp,
	.print	= sort__dso_print,
};

static int64_t
sort__sym_cmp(struct hist_entry *left, struct hist_entry *right)
{
@@ -809,6 +838,7 @@ struct sort_dimension {
static struct sort_dimension sort_dimensions[] = {
	{ .name = "pid",	.entry = &sort_thread,	},
	{ .name = "comm",	.entry = &sort_comm,	},
	{ .name = "dso",	.entry = &sort_dso,	},
	{ .name = "symbol",	.entry = &sort_sym,	},
};