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

Commit 992444b1 authored by Peter Zijlstra's avatar Peter Zijlstra Committed by Ingo Molnar
Browse files

perf_counter: tools: report: Add comm 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.129302022@chello.nl>
Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
parent 37f440cb
Loading
Loading
Loading
Loading
+30 −0
Original line number Diff line number Diff line
@@ -731,6 +731,35 @@ static struct sort_entry sort_thread = {
	.print	= sort__thread_print,
};

static int64_t
sort__comm_cmp(struct hist_entry *left, struct hist_entry *right)
{
	char *comm_l = left->thread->comm;
	char *comm_r = right->thread->comm;

	if (!comm_l || !comm_r) {
		if (!comm_l && !comm_r)
			return 0;
		else if (!comm_l)
			return -1;
		else
			return 1;
	}

	return strcmp(comm_l, comm_r);
}

static size_t
sort__comm_print(FILE *fp, struct hist_entry *self)
{
	return fprintf(fp, "%20s ", self->thread->comm ?: "<unknown>");
}

static struct sort_entry sort_comm = {
	.cmp	= sort__comm_cmp,
	.print	= sort__comm_print,
};

static int64_t
sort__sym_cmp(struct hist_entry *left, struct hist_entry *right)
{
@@ -779,6 +808,7 @@ struct sort_dimension {

static struct sort_dimension sort_dimensions[] = {
	{ .name = "pid",	.entry = &sort_thread,	},
	{ .name = "comm",	.entry = &sort_comm,	},
	{ .name = "symbol",	.entry = &sort_sym,	},
};