|
@@ -183,43 +183,19 @@ static void graph_trace_reset(struct trace_array *tr)
|
|
unregister_ftrace_graph();
|
|
unregister_ftrace_graph();
|
|
}
|
|
}
|
|
|
|
|
|
-static inline int log10_cpu(int nb)
|
|
|
|
-{
|
|
|
|
- if (nb / 100)
|
|
|
|
- return 3;
|
|
|
|
- if (nb / 10)
|
|
|
|
- return 2;
|
|
|
|
- return 1;
|
|
|
|
-}
|
|
|
|
|
|
+static int max_bytes_for_cpu;
|
|
|
|
|
|
static enum print_line_t
|
|
static enum print_line_t
|
|
print_graph_cpu(struct trace_seq *s, int cpu)
|
|
print_graph_cpu(struct trace_seq *s, int cpu)
|
|
{
|
|
{
|
|
- int i;
|
|
|
|
int ret;
|
|
int ret;
|
|
- int log10_this = log10_cpu(cpu);
|
|
|
|
- int log10_all = log10_cpu(cpumask_weight(cpu_online_mask));
|
|
|
|
-
|
|
|
|
|
|
|
|
/*
|
|
/*
|
|
* Start with a space character - to make it stand out
|
|
* Start with a space character - to make it stand out
|
|
* to the right a bit when trace output is pasted into
|
|
* to the right a bit when trace output is pasted into
|
|
* email:
|
|
* 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++) {
|
|
|
|
- ret = trace_seq_printf(s, " ");
|
|
|
|
- if (!ret)
|
|
|
|
- return TRACE_TYPE_PARTIAL_LINE;
|
|
|
|
- }
|
|
|
|
- ret = trace_seq_printf(s, "%d) ", cpu);
|
|
|
|
|
|
+ ret = trace_seq_printf(s, " %*d) ", max_bytes_for_cpu, cpu);
|
|
if (!ret)
|
|
if (!ret)
|
|
return TRACE_TYPE_PARTIAL_LINE;
|
|
return TRACE_TYPE_PARTIAL_LINE;
|
|
|
|
|
|
@@ -919,6 +895,8 @@ static struct tracer graph_trace __read_mostly = {
|
|
|
|
|
|
static __init int init_graph_trace(void)
|
|
static __init int init_graph_trace(void)
|
|
{
|
|
{
|
|
|
|
+ max_bytes_for_cpu = snprintf(NULL, 0, "%d", nr_cpu_ids - 1);
|
|
|
|
+
|
|
return register_tracer(&graph_trace);
|
|
return register_tracer(&graph_trace);
|
|
}
|
|
}
|
|
|
|
|