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

Commit 9d7e9344 authored by Li Zefan's avatar Li Zefan Committed by Ingo Molnar
Browse files

ksym_tracer: Fix the output of stat tracing



- make ksym_tracer_stat_start() return head->first instead of
  &head->first
- make the output properly aligned

Before:

   Access type                Symbol                     Counter
     NA                   <NA>                              0
     RW                   pid_max                               0

After:

  Access Type   Symbol                                       Counter
  -----------   ------                                       -------
  RW            pid_max                                            0

Signed-off-by: default avatarLi Zefan <lizf@cn.fujitsu.com>
Acked-by: default avatarFrederic Weisbecker <fweisbec@gmail.com>
Cc: "K.Prasad" <prasad@linux.vnet.ibm.com>
Cc: Alan Stern <stern@rowland.harvard.edu>
Cc: Steven Rostedt <rostedt@goodmis.org>
LKML-Reference: <4A52E346.5050608@cn.fujitsu.com>
Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
parent 558df6c8
Loading
Loading
Loading
Loading
+11 −9
Original line number Diff line number Diff line
@@ -453,8 +453,10 @@ device_initcall(init_ksym_trace);
#ifdef CONFIG_PROFILE_KSYM_TRACER
static int ksym_tracer_stat_headers(struct seq_file *m)
{
	seq_printf(m, "   Access type    ");
	seq_printf(m, "            Symbol                     Counter     \n");
	seq_puts(m, "  Access Type ");
	seq_puts(m, "  Symbol                                       Counter\n");
	seq_puts(m, "  ----------- ");
	seq_puts(m, "  ------                                       -------\n");
	return 0;
}

@@ -472,27 +474,27 @@ static int ksym_tracer_stat_show(struct seq_file *m, void *v)

	switch (access_type) {
	case HW_BREAKPOINT_WRITE:
		seq_printf(m, "     W     ");
		seq_puts(m, "  W           ");
		break;
	case HW_BREAKPOINT_RW:
		seq_printf(m, "     RW    ");
		seq_puts(m, "  RW          ");
		break;
	default:
		seq_printf(m, "     NA    ");
		seq_puts(m, "  NA          ");
	}

	if (lookup_symbol_name(entry->ksym_addr, fn_name) >= 0)
		seq_printf(m, "               %s                 ", fn_name);
		seq_printf(m, "  %-36s", fn_name);
	else
		seq_printf(m, "               <NA>                ");

		seq_printf(m, "  %-36s", "<NA>");
	seq_printf(m, " %15lu\n", entry->counter);

	return 0;
}

static void *ksym_tracer_stat_start(struct tracer_stat *trace)
{
	return &(ksym_filter_head.first);
	return ksym_filter_head.first;
}

static void *