[PATCH 0/6] Small seqfile-use improvements

From: Rasmus Villemoes
Date: Fri Sep 12 2014 - 05:26:24 EST


Patches 1-3 are semantic patches for replacing certain seq_* calls
with simpler equivalents, e.g. seq_printf(m, "literal") -> seq_puts(m,
"literal"). 1 and 3 are guaranteed to preserve the semantics of the
code. 2 may change it slightly, since if the seq_file overflows midway
through a series of seq_puts calls, some of the strings have been
printed; after applying 2, it is all-or-nothing. However, consecutive
seq_puts calls with literal strings is mostly used to print long
headers, so overflow is very unlikely.

As an example, I applied these coccinelle scripts to kernel/trace/.
The net result is a nice round, but admittedly tiny, 256 byte .text
reduction.

Rasmus Villemoes (6):
Coccinelle: Semantic patch for replacing puts with putc
Coccinelle: Semantic patch for joining seq_puts calls
Coccinelle: Semantic patch for replacing seq_printf calls with
equivalent but simpler functions
trace: Replace seq_printf by simpler equivalents
trace: Merge consecutive seq_puts calls
trace: Replace single-character seq_puts with seq_putc

kernel/trace/ftrace.c | 30 +++---
kernel/trace/trace.c | 86 ++++++++-------
kernel/trace/trace_branch.c | 31 +++---
kernel/trace/trace_events.c | 4 +-
kernel/trace/trace_events_trigger.c | 6 +-
kernel/trace/trace_functions.c | 2 +-
kernel/trace/trace_functions_graph.c | 28 ++---
kernel/trace/trace_kprobe.c | 12 +--
kernel/trace/trace_printk.c | 2 +-
kernel/trace/trace_uprobe.c | 4 +-
scripts/coccinelle/api/seq_printf.cocci | 156 +++++++++++++++++++++++++++
scripts/coccinelle/api/seq_puts_concat.cocci | 71 ++++++++++++
scripts/coccinelle/api/seq_putsc.cocci | 61 +++++++++++
13 files changed, 393 insertions(+), 100 deletions(-)
create mode 100644 scripts/coccinelle/api/seq_printf.cocci
create mode 100644 scripts/coccinelle/api/seq_puts_concat.cocci
create mode 100644 scripts/coccinelle/api/seq_putsc.cocci

--
2.0.4

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/