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

Commit fa6f0cc7 authored by Rasmus Villemoes's avatar Rasmus Villemoes Committed by Steven Rostedt
Browse files

tracing: Replace seq_printf by simpler equivalents

Using seq_printf to print a simple string or a single character is a
lot more expensive than it needs to be, since seq_puts and seq_putc
exist.

These patches do

  seq_printf(m, s) -> seq_puts(m, s)
  seq_printf(m, "%s", s) -> seq_puts(m, s)
  seq_printf(m, "%c", c) -> seq_putc(m, c)

Subsequent patches will simplify further.

Link: http://lkml.kernel.org/r/1415479332-25944-2-git-send-email-linux@rasmusvillemoes.dk



Signed-off-by: default avatarRasmus Villemoes <linux@rasmusvillemoes.dk>
Signed-off-by: default avatarSteven Rostedt <rostedt@goodmis.org>
parent 8520dedb
Loading
Loading
Loading
Loading
+15 −15
Original line number Diff line number Diff line
@@ -571,12 +571,12 @@ static int function_stat_cmp(void *p1, void *p2)
static int function_stat_headers(struct seq_file *m)
{
#ifdef CONFIG_FUNCTION_GRAPH_TRACER
	seq_printf(m, "  Function                               "
	seq_puts(m, "  Function                               "
		 "Hit    Time            Avg             s^2\n"
		    "  --------                               "
		 "---    ----            ---             ---\n");
#else
	seq_printf(m, "  Function                               Hit\n"
	seq_puts(m, "  Function                               Hit\n"
		    "  --------                               ---\n");
#endif
	return 0;
@@ -604,7 +604,7 @@ static int function_stat_show(struct seq_file *m, void *v)
	seq_printf(m, "  %-30.30s  %10lu", str, rec->counter);

#ifdef CONFIG_FUNCTION_GRAPH_TRACER
	seq_printf(m, "    ");
	seq_puts(m, "    ");
	avg = rec->time;
	do_div(avg, rec->counter);

@@ -3006,9 +3006,9 @@ static int t_show(struct seq_file *m, void *v)

	if (iter->flags & FTRACE_ITER_PRINTALL) {
		if (iter->flags & FTRACE_ITER_NOTRACE)
			seq_printf(m, "#### no functions disabled ####\n");
			seq_puts(m, "#### no functions disabled ####\n");
		else
			seq_printf(m, "#### all functions enabled ####\n");
			seq_puts(m, "#### all functions enabled ####\n");
		return 0;
	}

@@ -3030,13 +3030,13 @@ static int t_show(struct seq_file *m, void *v)
				seq_printf(m, "\ttramp: %pS",
					   (void *)ops->trampoline);
			else
				seq_printf(m, "\ttramp: ERROR!");
				seq_puts(m, "\ttramp: ERROR!");

		}
		add_trampoline_func(m, ops, rec);
	}	

	seq_printf(m, "\n");
	seq_putc(m, '\n');

	return 0;
}
@@ -4233,9 +4233,9 @@ static int g_show(struct seq_file *m, void *v)
		struct ftrace_graph_data *fgd = m->private;

		if (fgd->table == ftrace_graph_funcs)
			seq_printf(m, "#### all functions enabled ####\n");
			seq_puts(m, "#### all functions enabled ####\n");
		else
			seq_printf(m, "#### no functions disabled ####\n");
			seq_puts(m, "#### no functions disabled ####\n");
		return 0;
	}

@@ -5155,12 +5155,12 @@ static int fpid_show(struct seq_file *m, void *v)
	const struct ftrace_pid *fpid = list_entry(v, struct ftrace_pid, list);

	if (v == (void *)1) {
		seq_printf(m, "no pid\n");
		seq_puts(m, "no pid\n");
		return 0;
	}

	if (fpid->pid == ftrace_swapper_pid)
		seq_printf(m, "swapper tasks\n");
		seq_puts(m, "swapper tasks\n");
	else
		seq_printf(m, "%u\n", pid_vnr(fpid->pid));

+22 −22
Original line number Diff line number Diff line
@@ -2860,44 +2860,44 @@ static void test_ftrace_alive(struct seq_file *m)
{
	if (!ftrace_is_dead())
		return;
	seq_printf(m, "# WARNING: FUNCTION TRACING IS CORRUPTED\n");
	seq_printf(m, "#          MAY BE MISSING FUNCTION EVENTS\n");
	seq_puts(m, "# WARNING: FUNCTION TRACING IS CORRUPTED\n");
	seq_puts(m, "#          MAY BE MISSING FUNCTION EVENTS\n");
}

#ifdef CONFIG_TRACER_MAX_TRACE
static void show_snapshot_main_help(struct seq_file *m)
{
	seq_printf(m, "# echo 0 > snapshot : Clears and frees snapshot buffer\n");
	seq_printf(m, "# echo 1 > snapshot : Allocates snapshot buffer, if not already allocated.\n");
	seq_printf(m, "#                      Takes a snapshot of the main buffer.\n");
	seq_printf(m, "# echo 2 > snapshot : Clears snapshot buffer (but does not allocate or free)\n");
	seq_printf(m, "#                      (Doesn't have to be '2' works with any number that\n");
	seq_printf(m, "#                       is not a '0' or '1')\n");
	seq_puts(m, "# echo 0 > snapshot : Clears and frees snapshot buffer\n");
	seq_puts(m, "# echo 1 > snapshot : Allocates snapshot buffer, if not already allocated.\n");
	seq_puts(m, "#                      Takes a snapshot of the main buffer.\n");
	seq_puts(m, "# echo 2 > snapshot : Clears snapshot buffer (but does not allocate or free)\n");
	seq_puts(m, "#                      (Doesn't have to be '2' works with any number that\n");
	seq_puts(m, "#                       is not a '0' or '1')\n");
}

static void show_snapshot_percpu_help(struct seq_file *m)
{
	seq_printf(m, "# echo 0 > snapshot : Invalid for per_cpu snapshot file.\n");
	seq_puts(m, "# echo 0 > snapshot : Invalid for per_cpu snapshot file.\n");
#ifdef CONFIG_RING_BUFFER_ALLOW_SWAP
	seq_printf(m, "# echo 1 > snapshot : Allocates snapshot buffer, if not already allocated.\n");
	seq_printf(m, "#                      Takes a snapshot of the main buffer for this cpu.\n");
	seq_puts(m, "# echo 1 > snapshot : Allocates snapshot buffer, if not already allocated.\n");
	seq_puts(m, "#                      Takes a snapshot of the main buffer for this cpu.\n");
#else
	seq_printf(m, "# echo 1 > snapshot : Not supported with this kernel.\n");
	seq_printf(m, "#                     Must use main snapshot file to allocate.\n");
	seq_puts(m, "# echo 1 > snapshot : Not supported with this kernel.\n");
	seq_puts(m, "#                     Must use main snapshot file to allocate.\n");
#endif
	seq_printf(m, "# echo 2 > snapshot : Clears this cpu's snapshot buffer (but does not allocate)\n");
	seq_printf(m, "#                      (Doesn't have to be '2' works with any number that\n");
	seq_printf(m, "#                       is not a '0' or '1')\n");
	seq_puts(m, "# echo 2 > snapshot : Clears this cpu's snapshot buffer (but does not allocate)\n");
	seq_puts(m, "#                      (Doesn't have to be '2' works with any number that\n");
	seq_puts(m, "#                       is not a '0' or '1')\n");
}

static void print_snapshot_help(struct seq_file *m, struct trace_iterator *iter)
{
	if (iter->tr->allocated_snapshot)
		seq_printf(m, "#\n# * Snapshot is allocated *\n#\n");
		seq_puts(m, "#\n# * Snapshot is allocated *\n#\n");
	else
		seq_printf(m, "#\n# * Snapshot is freed *\n#\n");
		seq_puts(m, "#\n# * Snapshot is freed *\n#\n");

	seq_printf(m, "# Snapshot commands:\n");
	seq_puts(m, "# Snapshot commands:\n");
	if (iter->cpu_file == RING_BUFFER_ALL_CPUS)
		show_snapshot_main_help(m);
	else
@@ -3251,7 +3251,7 @@ static int t_show(struct seq_file *m, void *v)
	if (!t)
		return 0;

	seq_printf(m, "%s", t->name);
	seq_puts(m, t->name);
	if (t->next)
		seq_putc(m, ' ');
	else
@@ -5753,10 +5753,10 @@ ftrace_snapshot_print(struct seq_file *m, unsigned long ip,

	seq_printf(m, "%ps:", (void *)ip);

	seq_printf(m, "snapshot");
	seq_puts(m, "snapshot");

	if (count == -1)
		seq_printf(m, ":unlimited\n");
		seq_puts(m, ":unlimited\n");
	else
		seq_printf(m, ":count=%ld\n", count);

+13 −13
Original line number Diff line number Diff line
@@ -233,8 +233,8 @@ extern unsigned long __stop_annotated_branch_profile[];

static int annotated_branch_stat_headers(struct seq_file *m)
{
	seq_printf(m, " correct incorrect  %% ");
	seq_printf(m, "       Function                "
	seq_puts(m, " correct incorrect  % ");
	seq_puts(m, "       Function                "
		    "  File              Line\n"
		    " ------- ---------  - "
		    "       --------                "
@@ -274,7 +274,7 @@ static int branch_stat_show(struct seq_file *m, void *v)

	seq_printf(m, "%8lu %8lu ",  p->correct, p->incorrect);
	if (percent < 0)
		seq_printf(m, "  X ");
		seq_puts(m, "  X ");
	else
		seq_printf(m, "%3ld ", percent);
	seq_printf(m, "%-30.30s %-20.20s %d\n", p->func, f, p->line);
@@ -362,8 +362,8 @@ extern unsigned long __stop_branch_profile[];

static int all_branch_stat_headers(struct seq_file *m)
{
	seq_printf(m, "   miss      hit    %% ");
	seq_printf(m, "       Function                "
	seq_puts(m, "   miss      hit    % ");
	seq_puts(m, "       Function                "
		    "  File              Line\n"
		    " ------- ---------  - "
		    "       --------                "
+2 −2
Original line number Diff line number Diff line
@@ -918,7 +918,7 @@ static int f_show(struct seq_file *m, void *v)
	case FORMAT_HEADER:
		seq_printf(m, "name: %s\n", ftrace_event_name(call));
		seq_printf(m, "ID: %d\n", call->event.type);
		seq_printf(m, "format:\n");
		seq_puts(m, "format:\n");
		return 0;

	case FORMAT_FIELD_SEPERATOR:
@@ -1988,7 +1988,7 @@ event_enable_print(struct seq_file *m, unsigned long ip,
		   ftrace_event_name(data->file->event_call));

	if (data->count == -1)
		seq_printf(m, ":unlimited\n");
		seq_puts(m, ":unlimited\n");
	else
		seq_printf(m, ":count=%ld\n", data->count);

+1 −1
Original line number Diff line number Diff line
@@ -373,7 +373,7 @@ event_trigger_print(const char *name, struct seq_file *m,
{
	long count = (long)data;

	seq_printf(m, "%s", name);
	seq_puts(m, name);

	if (count == -1)
		seq_puts(m, ":unlimited");
Loading