1. 17 Jul, 2014 2 commits
    • Steven Rostedt (Red Hat)'s avatar
      x86, power, suspend: Annotate restore_processor_state() with notrace · b8f99b3e
      Steven Rostedt (Red Hat) authored
      ftrace_stop() is used to stop function tracing during suspend and resume
      which removes a lot of possible debugging opportunities with tracing.
      The reason was that some function in the resume path was causing a triple
      fault if it were to be traced. The issue I found was that doing something
      as simple as calling smp_processor_id() would reboot the box!
      
      When function tracing was first created I didn't have a good way to figure
      out what function was having issues, or it looked to be multiple ones. To
      fix it, we just created a big hammer approach to the problem which was to
      add a flag in the mcount trampoline that could be checked and not call
      the traced functions.
      
      Lately I developed better ways to find problem functions and I can bisect
      down to see what function is causing the issue. I removed the flag that
      stopped tracing and proceeded to find the problem function and it ended
      up being restore_processor_state(). This function makes sense as when the
      CPU comes back online from a suspend it calls this function to set up
      registers, amongst them the GS register, which stores things such as
      what CPU the processor is (if you call smp_processor_id() without this
      set up properly, it would fault).
      
      By making restore_processor_state() notrace, the system can suspend and
      resume without the need of the big hammer tracing to stop.
      
      Link: http://lkml.kernel.org/r/3577662.BSnUZfboWb@vostro.rjw.lanAcked-by: default avatar"Rafael J. Wysocki" <rjw@rjwysocki.net>
      Reviewed-by: default avatarMasami Hiramatsu <masami.hiramatsu.pt@hitachi.com>
      Signed-off-by: default avatarSteven Rostedt <rostedt@goodmis.org>
      b8f99b3e
    • Steven Rostedt (Red Hat)'s avatar
      ftrace/x86: Have function graph tracer use its own trampoline · 1026ff9b
      Steven Rostedt (Red Hat) authored
      The function graph trampoline is called from the function trampoline
      and both do a save and restore of registers. The save of registers
      done by the function trampoline when only the function graph tracer
      is running is a waste of CPU cycles.
      
      As the function graph tracer trampoline in x86 is dependent from
      the function trampoline, we can call it directly when a function
      is only being traced by the function graph trampoline.
      Acked-by: default avatarH. Peter Anvin <hpa@linux.intel.com>
      Signed-off-by: default avatarSteven Rostedt <rostedt@goodmis.org>
      1026ff9b
  2. 16 Jul, 2014 1 commit
  3. 09 Jul, 2014 1 commit
  4. 01 Jul, 2014 19 commits
  5. 30 Jun, 2014 7 commits
  6. 29 Jun, 2014 10 commits