1. 26 Aug, 2009 7 commits
    • Xiao Guangrong's avatar
      tracing/events: fix the include file dependencies · 5ac35daa
      Xiao Guangrong authored
      The TRACE_EVENT depends on the include/linux/tracepoint.h first
      and include/trace/ftrace.h later, if we include the ftrace.h early,
      a building error will occur.
      
      Both define TRACE_EVENT in trace_a.h and trace_b.h, if we include
      those in .c file, like this:
      
      #define CREATE_TRACE_POINTS
      include <trace/events/trace_a.h>
      include <trace/events/trace_b.h>
      
      The above will not work, because the TRACE_EVENT was re-defined by
      the previous .h file.
      Reported-by: default avatarWei Yongjun <[email protected]>
      Signed-off-by: default avatarXiao Guangrong <[email protected]>
      LKML-Reference: <[email protected]>
      Signed-off-by: default avatarSteven Rostedt <[email protected]>
      5ac35daa
    • Zhaolei's avatar
      ftrace: Move setting of clock-source out of options · 5079f326
      Zhaolei authored
      There are many clock sources for the tracing system but we can only
      enable/disable one at a time with the trace/options file.
      We can move the setting of clock-source out of options and add a separate
      file for it:
       # cat trace_clock
       [local] global
       # echo global > trace_clock
       # cat trace_clock
       local [global]
      Signed-off-by: default avatarZhao Lei <[email protected]>
      LKML-Reference: <[email protected]>
      Signed-off-by: default avatarSteven Rostedt <[email protected]>
      5079f326
    • Li Zefan's avatar
      tracing/filters: Support filtering for char * strings · 87a342f5
      Li Zefan authored
      Usually, char * entries are dangerous in traces because the string
      can be released whereas a pointer to it can still wait to be read from
      the ring buffer.
      
      But sometimes we can assume it's safe, like in case of RO data
      (eg: __file__ or __line__, used in bkl trace event). If these RO data
      are in a module and so is the call to the trace event, then it's safe,
      because the ring buffer will be flushed once this module get unloaded.
      
      To allow char * to be treated as a string:
      
      	TRACE_EVENT(...,
      
      		TP_STRUCT__entry(
      			__field_ext(const char *, name, FILTER_PTR_STRING)
      			...
      		)
      
      		...
      	);
      
      The filtering will not dereference "char *" unless the developer
      explicitly sets FILTER_PTR_STR in __field_ext.
      Signed-off-by: default avatarLi Zefan <[email protected]>
      LKML-Reference: <[email protected]>
      Signed-off-by: default avatarSteven Rostedt <[email protected]>
      87a342f5
    • Li Zefan's avatar
      tracing/filters: Add __field_ext() to TRACE_EVENT · 43b51ead
      Li Zefan authored
      Add __field_ext(), so a field can be assigned to a specific
      filter_type, which matches a corresponding filter function.
      
      For example, a later patch will allow this:
      	__field_ext(const char *, str, FILTER_PTR_STR);
      Signed-off-by: default avatarLi Zefan <[email protected]>
      LKML-Reference: <4A7B9272.60507095@cn.fujitsu.com>
      
      [
        Fixed a -1 to FILTER_OTHER
        Forward ported to latest kernel.
      ]
      Signed-off-by: default avatarSteven Rostedt <[email protected]>
      43b51ead
    • Li Zefan's avatar
      tracing/filters: Add filter_type to struct ftrace_event_field · aa38e9fc
      Li Zefan authored
      The type of a field is stored as a string in @type, and here
      we add @filter_type which is an enum value.
      
      This prepares for later patches, so we can specifically assign
      different @filter_type for the same @type.
      
      For example normally a "char *" field is treated as a ptr,
      but we may want it to be treated as a string when doing filting.
      Signed-off-by: default avatarLi Zefan <[email protected]>
      LKML-Reference: <[email protected]>
      Signed-off-by: default avatarSteven Rostedt <[email protected]>
      aa38e9fc
    • Josh Triplett's avatar
      tracing: Add vim script to enable folding for function_graph traces · 6591b493
      Josh Triplett authored
      function_graph traces look like nested function calls, complete with
      braces denoting the start and end of functions.  function-graph-fold.vim
      teaches vim how to fold these functions, to make it more convenient to
      browse them.
      
      To use, :source function-graph-fold.vim while viewing a function_graph
      trace, or use "view -S function-graph-fold.vim some-trace" to load it
      from the command-line together with a trace.  You can then use the usual
      vim fold commands, such as "za", to open and close nested functions.
      While closed, a fold will show the total time taken for a call, as would
      normally appear on the line with the closing brace.  Folded functions
      will not include finish_task_switch(), so folding should remain
      relatively sane even through a context switch.
      
      Note that this will almost certainly only work well with a single-CPU
      trace (e.g. trace-cmd report --cpu 1).  It also takes some time to run
      (a few seconds for a large trace on my laptop).  Nevertheless, I found
      it very handy to get an overview of a trace and then drill down on
      problematic calls.
      Signed-off-by: Josh Triplett's avatarJosh Triplett <[email protected]>
      LKML-Reference: <[email protected]>
      Signed-off-by: default avatarSteven Rostedt <[email protected]>
      6591b493
    • Steven Rostedt's avatar
      tracing/sched: show CPU task wakes up on in trace event · f0693c8b
      Steven Rostedt authored
      While debugging the scheduler push / pull algorithm, I found
      it very annoying that the sched wake up events did not show
      the CPU that the task was waking on. In order to analyze the
      scheduler, I needed that information.
      
      This patch adds recording of the CPU that a task is waking up
      on.
      Signed-off-by: default avatarSteven Rostedt <[email protected]>
      f0693c8b
  2. 25 Aug, 2009 1 commit
  3. 20 Aug, 2009 1 commit
  4. 19 Aug, 2009 6 commits
  5. 17 Aug, 2009 5 commits
  6. 13 Aug, 2009 1 commit
  7. 11 Aug, 2009 17 commits
  8. 10 Aug, 2009 2 commits
    • Linus Torvalds's avatar
      pty: fix data loss when stopped (^S/^Q) · 85dfd81d
      Linus Torvalds authored
      Commit d945cb9c ("pty: Rework the pty layer to use the normal buffering
      logic") dropped the test for 'tty->stopped' in pty_write_room(), which
      then causes the n_tty line discipline thing to not throttle the data
      properly when the tty is stopped.
      
      So instead of pausing the write due to the tty being stopped, the ldisc
      layer would go ahead and push it down to the pty.  The pty write()
      routine would then refuse to take the data (because it _did_ check
      'stopped'), and the data wouldn't actually be written.
      
      This whole stopped test should eventually be moved into the tty ldisc
      layer rather than have low-level tty drivers care about these things,
      but right now the fix is to just re-instate the missing pty 'stopped'
      handling.
      Reported-and-tested-by: default avatarArtur Skawina <[email protected]>
      Cc: Alan Cox <[email protected]>
      Signed-off-by: default avatarLinus Torvalds <[email protected]>
      85dfd81d
    • Linus Torvalds's avatar
      Merge branch 'perfcounters-fixes-for-linus' of... · d00aa669
      Linus Torvalds authored
      Merge branch 'perfcounters-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip
      
      * 'perfcounters-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (27 commits)
        perf_counter: Zero dead bytes from ftrace raw samples size alignment
        perf_counter: Subtract the buffer size field from the event record size
        perf_counter: Require CAP_SYS_ADMIN for raw tracepoint data
        perf_counter: Correct PERF_SAMPLE_RAW output
        perf tools: callchain: Fix bad rounding of minimum rate
        perf_counter tools: Fix libbfd detection for systems with libz dependency
        perf: "Longum est iter per praecepta, breve et efficax per exempla"
        perf_counter: Fix a race on perf_counter_ctx
        perf_counter: Fix tracepoint sampling to be part of generic sampling
        perf_counter: Work around gcc warning by initializing tracepoint record unconditionally
        perf tools: callchain: Fix sum of percentages to be 100% by displaying amount of ignored chains in fractal mode
        perf tools: callchain: Fix 'perf report' display to be callchain by default
        perf tools: callchain: Fix spurious 'perf report' warnings: ignore empty callchains
        perf record: Fix the -A UI for empty or non-existent perf.data
        perf util: Fix do_read() to fail on EOF instead of busy-looping
        perf list: Fix the output to not include tracepoints without an id
        perf_counter/powerpc: Fix oops on cpus without perf_counter hardware support
        perf stat: Fix tool option consistency: rename -S/--scale to -c/--scale
        perf report: Add debug help for the finding of symbol bugs - show the symtab origin (DSO, build-id, kernel, etc)
        perf report: Fix per task mult-counter stat reporting
        ...
      d00aa669