perf tools: Clarify the output of perf sched map.
In output of perf sched map, any shortname of thread will be explained
at the first time when it appear.
Example:
*A0 228836.978985 secs A0 => perf:23032
*. A0 228836.979016 secs B0 => swapper:0
. *C0 228836.979099 secs C0 => migration/3:22
*A0 . C0 228836.979115 secs
A0 . *. 228836.979115 secs
But B0, which is explained as swapper:0 did not appear in the
left part of output. Instead, we use '.' as the shortname of
swapper:0. So the comment of "B0 => swapper:0" is not easy to
understand.
This patch clarify the output of perf sched map with not allocating
one letter-number shortname for swapper:0 and print ". => swapper:0"
as the explanation for swapper:0.
Example:
*A0 228836.978985 secs A0 => perf:23032
* . A0 228836.979016 secs . => swapper:0
. *B0 228836.979099 secs B0 => migration/3:22
*A0 . B0 228836.979115 secs
A0 . * . 228836.979115 secs
A0 *C0 . 228836.979225 secs C0 => ksoftirqd/2:18
A0 *D0 . 228836.979236 secs D0 => rcu_sched:7
Signed-off-by: Dongsheng <yangds.fnst@cn.fujitsu.com>
Acked-by: Ingo Molnar <mingo@kernel.org>
Link: http://lkml.kernel.org/r/1399354741-19522-1-git-send-email-yangds.fnst@cn.fujitsu.com
[ small style fixes to make checkpatch happy ]
Signed-off-by: Jiri Olsa <jolsa@kernel.org>
This commit is contained in:
@@ -1300,17 +1300,25 @@ static int map_switch_event(struct perf_sched *sched, struct perf_evsel *evsel,
|
||||
|
||||
new_shortname = 0;
|
||||
if (!sched_in->shortname[0]) {
|
||||
if (!strcmp(thread__comm_str(sched_in), "swapper")) {
|
||||
/*
|
||||
* Don't allocate a letter-number for swapper:0
|
||||
* as a shortname. Instead, we use '.' for it.
|
||||
*/
|
||||
sched_in->shortname[0] = '.';
|
||||
sched_in->shortname[1] = ' ';
|
||||
} else {
|
||||
sched_in->shortname[0] = sched->next_shortname1;
|
||||
sched_in->shortname[1] = sched->next_shortname2;
|
||||
|
||||
if (sched->next_shortname1 < 'Z') {
|
||||
sched->next_shortname1++;
|
||||
} else {
|
||||
sched->next_shortname1='A';
|
||||
if (sched->next_shortname2 < '9') {
|
||||
sched->next_shortname1 = 'A';
|
||||
if (sched->next_shortname2 < '9')
|
||||
sched->next_shortname2++;
|
||||
} else {
|
||||
sched->next_shortname2='0';
|
||||
else
|
||||
sched->next_shortname2 = '0';
|
||||
}
|
||||
}
|
||||
new_shortname = 1;
|
||||
@@ -1322,12 +1330,9 @@ static int map_switch_event(struct perf_sched *sched, struct perf_evsel *evsel,
|
||||
else
|
||||
printf("*");
|
||||
|
||||
if (sched->curr_thread[cpu]) {
|
||||
if (sched->curr_thread[cpu]->tid)
|
||||
if (sched->curr_thread[cpu])
|
||||
printf("%2s ", sched->curr_thread[cpu]->shortname);
|
||||
else
|
||||
printf(". ");
|
||||
} else
|
||||
printf(" ");
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user