tracing/function-graph-tracer: more output tweaks
Impact: prettify the output some more Before: 0) | sys_read() { 0) 0.796 us | fget_light(); 0) | vfs_read() { 0) | rw_verify_area() { 0) | security_file_permission() { ------------8<---------- thread sshd-1755 ------------8<---------- After: 0) | sys_read() { 0) 0.796 us | fget_light(); 0) | vfs_read() { 0) | rw_verify_area() { 0) | security_file_permission() { ------------------------------------------ | 1) migration/0--1 => sshd-1755 ------------------------------------------ Signed-off-by: Ingo Molnar <mingo@elte.hu>
This commit is contained in:
parent
1a056155ed
commit
d51090b346
|
@ -79,6 +79,19 @@ print_graph_cpu(struct trace_seq *s, int cpu)
|
||||||
int log10_all = log10_cpu(cpus_weight_nr(cpu_online_map));
|
int log10_all = log10_cpu(cpus_weight_nr(cpu_online_map));
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Start with a space character - to make it stand out
|
||||||
|
* to the right a bit when trace output is pasted into
|
||||||
|
* email:
|
||||||
|
*/
|
||||||
|
ret = trace_seq_printf(s, " ");
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Tricky - we space the CPU field according to the max
|
||||||
|
* number of online CPUs. On a 2-cpu system it would take
|
||||||
|
* a maximum of 1 digit - on a 128 cpu system it would
|
||||||
|
* take up to 3 digits:
|
||||||
|
*/
|
||||||
for (i = 0; i < log10_all - log10_this; i++) {
|
for (i = 0; i < log10_all - log10_this; i++) {
|
||||||
ret = trace_seq_printf(s, " ");
|
ret = trace_seq_printf(s, " ");
|
||||||
if (!ret)
|
if (!ret)
|
||||||
|
@ -86,7 +99,8 @@ print_graph_cpu(struct trace_seq *s, int cpu)
|
||||||
}
|
}
|
||||||
ret = trace_seq_printf(s, "%d) ", cpu);
|
ret = trace_seq_printf(s, "%d) ", cpu);
|
||||||
if (!ret)
|
if (!ret)
|
||||||
return TRACE_TYPE_PARTIAL_LINE;
|
return TRACE_TYPE_PARTIAL_LINE;
|
||||||
|
|
||||||
return TRACE_TYPE_HANDLED;
|
return TRACE_TYPE_HANDLED;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -94,17 +108,34 @@ print_graph_cpu(struct trace_seq *s, int cpu)
|
||||||
/* If the pid changed since the last trace, output this event */
|
/* If the pid changed since the last trace, output this event */
|
||||||
static int verif_pid(struct trace_seq *s, pid_t pid, int cpu)
|
static int verif_pid(struct trace_seq *s, pid_t pid, int cpu)
|
||||||
{
|
{
|
||||||
char *comm;
|
char *comm, *prev_comm;
|
||||||
|
pid_t prev_pid;
|
||||||
|
int ret;
|
||||||
|
|
||||||
if (last_pid[cpu] != -1 && last_pid[cpu] == pid)
|
if (last_pid[cpu] != -1 && last_pid[cpu] == pid)
|
||||||
return 1;
|
return 1;
|
||||||
|
|
||||||
|
prev_pid = last_pid[cpu];
|
||||||
last_pid[cpu] = pid;
|
last_pid[cpu] = pid;
|
||||||
comm = trace_find_cmdline(pid);
|
|
||||||
|
|
||||||
return trace_seq_printf(s, "\n------------8<---------- thread %s-%d"
|
comm = trace_find_cmdline(pid);
|
||||||
" ------------8<----------\n\n",
|
prev_comm = trace_find_cmdline(prev_pid);
|
||||||
cpu, comm, pid);
|
|
||||||
|
/*
|
||||||
|
* Context-switch trace line:
|
||||||
|
|
||||||
|
------------------------------------------
|
||||||
|
| 1) migration/0--1 => sshd-1755
|
||||||
|
------------------------------------------
|
||||||
|
|
||||||
|
*/
|
||||||
|
ret = trace_seq_printf(s,
|
||||||
|
" ------------------------------------------\n");
|
||||||
|
ret += trace_seq_printf(s, " | %d) %s-%d => %s-%d\n",
|
||||||
|
cpu, prev_comm, prev_pid, comm, pid);
|
||||||
|
ret += trace_seq_printf(s,
|
||||||
|
" ------------------------------------------\n\n");
|
||||||
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
static bool
|
static bool
|
||||||
|
@ -142,7 +173,7 @@ static inline int
|
||||||
print_graph_duration(unsigned long long duration, struct trace_seq *s)
|
print_graph_duration(unsigned long long duration, struct trace_seq *s)
|
||||||
{
|
{
|
||||||
unsigned long nsecs_rem = do_div(duration, 1000);
|
unsigned long nsecs_rem = do_div(duration, 1000);
|
||||||
return trace_seq_printf(s, "%4llu.%3lu us | ", duration, nsecs_rem);
|
return trace_seq_printf(s, "%4llu.%3lu us | ", duration, nsecs_rem);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Signal a overhead of time execution to the output */
|
/* Signal a overhead of time execution to the output */
|
||||||
|
@ -229,7 +260,7 @@ print_graph_entry_nested(struct ftrace_graph_ent_entry *entry,
|
||||||
}
|
}
|
||||||
|
|
||||||
/* No time */
|
/* No time */
|
||||||
ret = trace_seq_printf(s, " | ");
|
ret = trace_seq_printf(s, " | ");
|
||||||
|
|
||||||
/* Function */
|
/* Function */
|
||||||
for (i = 0; i < call->depth * TRACE_GRAPH_INDENT; i++) {
|
for (i = 0; i < call->depth * TRACE_GRAPH_INDENT; i++) {
|
||||||
|
|
Loading…
Reference in a new issue