• Anton Vorontsov's avatar
    pstore/ftrace: Convert to its own enable/disable debugfs knob · 65f8c95e
    Anton Vorontsov authored
    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: default avatarSteven Rostedt <rostedt@goodmis.org>
    Signed-off-by: default avatarAnton Vorontsov <anton.vorontsov@linaro.org>
    65f8c95e
ftrace.c 2.95 KB