lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite for Android: free password hash cracker in your pocket
[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Date:	Fri, 12 Sep 2014 11:25:48 +0200
From:	Rasmus Villemoes <linux@...musvillemoes.dk>
To:	Julia Lawall <Julia.Lawall@...6.fr>,
	Steven Rostedt <rostedt@...dmis.org>,
	Ingo Molnar <mingo@...hat.com>
Cc:	linux-kernel@...r.kernel.org,
	Rasmus Villemoes <linux@...musvillemoes.dk>
Subject: [PATCH 0/6] Small seqfile-use improvements

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@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ