pstore/ftrace: Convert to its own enable/disable debugfs knob
authorAnton Vorontsov <anton.vorontsov@linaro.org>
Tue, 17 Jul 2012 21:26:15 +0000 (14:26 -0700)
committerAnton Vorontsov <anton.vorontsov@linaro.org>
Fri, 7 Sep 2012 05:16:58 +0000 (22:16 -0700)
commit65f8c95e46a1827ae8bbc52a817ea308dd7d65ae
treeadc856e8b50441b055350d8f1d83e3f641c77456
parentb4a871bce619dc5ca03cc6c78e1c467ceacb8e7e
pstore/ftrace: Convert to its own enable/disable debugfs knob

With this patch we no longer reuse function tracer infrastructure, now
we register our own tracer back-end via a debugfs knob.

It's a bit more code, but that is the only downside. On the bright side we
have:

- Ability to make persistent_ram module removable (when needed, we can
  move ftrace_ops struct into a module). Note that persistent_ram is still
  not removable for other reasons, but with this patch it's just one
  thing less to worry about;

- Pstore part is more isolated from the generic function tracer. We tried
  it already by registering our own tracer in available_tracers, but that
  way we're loosing ability to see the traces while we record them to
  pstore. This solution is somewhere in the middle: we only register
  "internal ftracer" back-end, but not the "front-end";

- When there is only pstore tracing enabled, the kernel will only write
  to the pstore buffer, omitting function tracer buffer (which, of course,
  still can be enabled via 'echo function > current_tracer').

Suggested-by: Steven Rostedt <rostedt@goodmis.org>
Signed-off-by: Anton Vorontsov <anton.vorontsov@linaro.org>
Documentation/ramoops.txt
fs/pstore/Kconfig
fs/pstore/ftrace.c
fs/pstore/internal.h
fs/pstore/platform.c
include/linux/pstore.h
kernel/trace/trace_functions.c