Before patch:
  # tracer: power
  #
  #           TASK-PID    CPU#    TIMESTAMP  FUNCTION
  #              | |       |          |         |
  [  676.
875865889] CSTATE: Going to C1 on cpu 0 for 0.
005911463
  [  676.
882938805] CSTATE: Going to C1 on cpu 0 for 0.
104796532
  ...
After patch:
  # tracer: power
  #
  #   TIMESTAMP      STATE  EVENT
  #       |            |      |
  [  676.
875865889] CSTATE: Going to C1 on cpu 0 for 0.
005911463
  [  676.
882938805] CSTATE: Going to C1 on cpu 0 for 0.
104796532
  ...
v2: Use seq_puts instead of seq_printf
Signed-off-by: Zhao Lei <zhaolei@cn.fujitsu.com>
Cc: Arjan van de Ven <arjan@linux.intel.com>
Cc: Steven Rostedt <rostedt@goodmis.org>
Cc: Frederic Weisbecker <fweisbec@gmail.com>
Cc: Tom Zanussi <tzanussi@gmail.com>
LKML-Reference: <
49E2E889.
5000903@cn.fujitsu.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
 
        return TRACE_TYPE_UNHANDLED;
 }
 
+static void power_print_header(struct seq_file *s)
+{
+       seq_puts(s, "#   TIMESTAMP      STATE  EVENT\n");
+       seq_puts(s, "#       |            |      |\n");
+}
+
 static struct tracer power_tracer __read_mostly =
 {
        .name           = "power",
        .stop           = stop_power_trace,
        .reset          = power_trace_reset,
        .print_line     = power_print_line,
+       .print_header   = power_print_header,
 };
 
 static int init_power_trace(void)