1. 26 Oct, 2015 1 commit
    • Steven Rostedt (Red Hat)'s avatar
      tracepoint: Give priority to probes of tracepoints · 7904b5c4
      Steven Rostedt (Red Hat) authored
      In order to guarantee that a probe will be called before other probes that
      are attached to a tracepoint, there needs to be a mechanism to provide
      priority of one probe over the others.
      
      Adding a prio field to the struct tracepoint_func, which lets the probes be
      sorted by the priority set in the structure. If no priority is specified,
      then a priority of 10 is given (this is a macro, and perhaps may be changed
      in the future).
      
      Now probes may be added to affect other probes that are attached to a
      tracepoint with a guaranteed order.
      
      One use case would be to allow tracing of tracepoints be able to filter by
      pid. A special (higher priority probe) may be added to the sched_switch
      tracepoint and set the necessary flags of the other tracepoints to notify
      them if they should be traced or not. In case a tracepoint is enabled at the
      sched_switch tracepoint too, the order of the two are not random.
      
      Cc: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
      Signed-off-by: default avatarSteven Rostedt <rostedt@goodmis.org>
      7904b5c4
  2. 22 Oct, 2015 1 commit
  3. 21 Oct, 2015 5 commits
  4. 20 Oct, 2015 1 commit
  5. 16 Oct, 2015 1 commit
  6. 14 Oct, 2015 1 commit
  7. 01 Oct, 2015 2 commits
  8. 30 Sep, 2015 9 commits
    • Steven Rostedt (Red Hat)'s avatar
      tracing: Add trace options for tracer options to instances · 37aea98b
      Steven Rostedt (Red Hat) authored
      Add the tracer options to instances options directory as well. Only add the
      options for tracers that are allowed to be enabled by an instance. But note,
      that tracer options are global. That is, tracer options enabled in an
      instance, also take affect at the top level and in other instances.
      Signed-off-by: default avatarSteven Rostedt <rostedt@goodmis.org>
      37aea98b
    • Steven Rostedt (Red Hat)'s avatar
      tracing: Add trace options for core options to instances · 16270145
      Steven Rostedt (Red Hat) authored
      Allow instances to have their own options, at least for the core options
      (non tracer specific ones). There are a few global options that should not
      be added to instances, like enabling of trace_printk, and the sched comm
      recording, which do not have a specific trace instance associated to them.
      Signed-off-by: default avatarSteven Rostedt <rostedt@goodmis.org>
      16270145
    • Steven Rostedt (Red Hat)'s avatar
      tracing: Make ftrace_trace_stack() depend on general trace_array flag · 2d34f489
      Steven Rostedt (Red Hat) authored
      In preparation for the multi buffer instances to have their own trace_flags,
      the check in ftrace_trace_stack() needs to test the trace_array descriptor
      flag that is for the current event, not the global_trace descriptor.
      Signed-off-by: default avatarSteven Rostedt <rostedt@goodmis.org>
      2d34f489
    • Steven Rostedt (Red Hat)'s avatar
      tracing: Add a method to pass in trace_array descriptor to option files · 9a38a885
      Steven Rostedt (Red Hat) authored
      In preparation of having the multi buffer instances having their own trace
      option flags, the trace option files needs a way to not only pass in the
      flag they represent, but also the trace_array descriptor.
      
      A new field is added to the trace_array descriptor called trace_flags_index,
      which is a 32 byte character array representing a bit. This array is simply
      filled with the index of the array, where
      
        index_array[n] = n;
      
      Then the address of this array is passed to the file callbacks instead of
      the index of the flag index. Then to retrieve both the flag index and the
      trace_array descriptor:
      
        data is the passed in argument.
      
        index = *(unsigned char *)data;
      
        data -= index;
      
        /* Now data points to the address of the array in the trace_array */
      
        tr = container_of(data, struct trace_array, trace_flags_index);
      Suggested-by: default avatarJohannes Berg <johannes.berg@intel.com>
      Signed-off-by: default avatarSteven Rostedt <rostedt@goodmis.org>
      9a38a885
    • Steven Rostedt (Red Hat)'s avatar
      tracing: Move trace_flags from global to a trace_array field · 983f938a
      Steven Rostedt (Red Hat) authored
      In preparation to make trace options per instance, the global trace_flags
      needs to be moved from being a global variable to a field within the trace
      instance trace_array structure.
      
      There's still more work to do, as there's some functions that use
      trace_flags without passing in a way to get to the current_trace array. For
      those, the global_trace is used directly (from trace.c). This includes
      setting and clearing the trace_flags. This means that when a new instance is
      created, it just gets the trace_flags of the global_trace and will not be
      able to modify them. Depending on the functions that have access to the
      trace_array, the flags of an instance may not affect parts of its trace,
      where the global_trace is used. These will be fixed in future changes.
      Signed-off-by: default avatarSteven Rostedt <rostedt@goodmis.org>
      983f938a
    • Steven Rostedt (Red Hat)'s avatar
      tracing: Move sleep-time and graph-time options out of the core trace_flags · 55577204
      Steven Rostedt (Red Hat) authored
      The sleep-time and graph-time options are only for the function graph tracer
      and are not used by anything else. As tracer options are now visible when
      the tracer is not activated, its better to move the function graph specific
      tracer options into the function graph tracer.
      Signed-off-by: default avatarSteven Rostedt <rostedt@goodmis.org>
      55577204
    • Steven Rostedt (Red Hat)'s avatar
      tracing: Remove access to trace_flags in trace_printk.c · b9f9108c
      Steven Rostedt (Red Hat) authored
      In the effort to move the global trace_flags to the tracing instances, the
      direct access to trace_flags must be removed from trace_printk.c
      
      Instead, add a new trace_printk_enabled boolean that is set by a new access
      function trace_printk_control(), that will enable or disable trace_printk.
      Signed-off-by: default avatarSteven Rostedt <rostedt@goodmis.org>
      b9f9108c
    • Steven Rostedt (Red Hat)'s avatar
      tracing: Add build bug if we have more trace_flags than bits · b5e87c05
      Steven Rostedt (Red Hat) authored
      Add a enum that denotes the last bit of the trace_flags and have a
      BUILD_BUG_ON(last_bit > 32).
      
      If we add more bits than we have in trace_flags, the kernel wont build.
      Signed-off-by: default avatarSteven Rostedt <rostedt@goodmis.org>
      b5e87c05
    • Steven Rostedt (Red Hat)'s avatar
      tracing: Always show all tracer options in the options directory · 41d9c0be
      Steven Rostedt (Red Hat) authored
      There are options that are unique to a specific tracer (like function and
      function graph). Currently, these options are only visible in the options
      directory when the tracer is enabled.
      
      This has been a pain, especially for something like the func_stack_trace
      option that if used inappropriately, could bring the system to a crawl. But
      the only way to see it, is to enable the function tracer.
      
      For example, if one had done:
      
       # cd /sys/kernel/tracing
       # echo __schedule > set_ftrace_filter
       # echo 1 > options/func_stack_trace
       # echo function > current_tracer
      
      The __schedule call will be traced and a stack trace will also be recorded
      there. Now when you were done, you may do...
      
       # echo nop > current_tracer
       # echo > set_ftrace_filter
      
      But you forgot to disable the func_stack_trace. The only way to disable it
      is to re-enable function tracing first. If you do not add a filter to
      set_ftrace_filter and just do:
      
       # echo function > current_tracer
      
      Now you would be performing a stack trace on *every* function! On some
      systems, that causes a live lock. Others may take a few minutes to fix your
      mistake.
      
      Having the func_stack_trace option visible allows you to check it and
      disable it before enabling the funtion tracer.
      Signed-off-by: default avatarSteven Rostedt <rostedt@goodmis.org>
      41d9c0be
  9. 29 Sep, 2015 8 commits
  10. 28 Sep, 2015 3 commits
  11. 25 Sep, 2015 3 commits
  12. 23 Sep, 2015 1 commit
  13. 22 Sep, 2015 1 commit
  14. 20 Sep, 2015 3 commits
    • Linus Torvalds's avatar
      Linux 4.3-rc2 · 1f93e4a9
      Linus Torvalds authored
      1f93e4a9
    • Linus Torvalds's avatar
      Merge branch 'fixes' of git://ftp.arm.linux.org.uk/~rmk/linux-arm · 99bc7215
      Linus Torvalds authored
      Pull ARM fixes from Russell King:
       "Three fixes and a resulting cleanup for -rc2:
      
         - Andre Przywara reported that he was seeing a warning with the new
           cast inside DMA_ERROR_CODE's definition, and fixed the incorrect
           use.
      
         - Doug Anderson noticed that kgdb causes a "scheduling while atomic"
           bug.
      
         - OMAP5 folk noticed that their Thumb-2 compiled X servers crashed
           when enabling support to cover ARMv6 CPUs due to a kernel bug
           leaking some conditional context into the signal handler"
      
      * 'fixes' of git://ftp.arm.linux.org.uk/~rmk/linux-arm:
        ARM: 8425/1: kgdb: Don't try to stop the machine when setting breakpoints
        ARM: 8437/1: dma-mapping: fix build warning with new DMA_ERROR_CODE definition
        ARM: get rid of needless #if in signal handling code
        ARM: fix Thumb2 signal handling when ARMv6 is enabled
      99bc7215
    • Linus Torvalds's avatar
      Merge tag 'linux-kselftest-4.3-rc2' of... · 30ec5682
      Linus Torvalds authored
      Merge tag 'linux-kselftest-4.3-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/shuah/linux-kselftest
      
      Pull kselftest fixes from Shuah Khan:
       "This update contains 7 fixes for problems ranging from build failurs
        to incorrect error reporting"
      
      * tag 'linux-kselftest-4.3-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/shuah/linux-kselftest:
        selftests: exec: revert to default emit rule
        selftests: change install command to rsync
        selftests: mqueue: simplify the Makefile
        selftests: mqueue: allow extra cflags
        selftests: rename jump label to static_keys
        selftests/seccomp: add support for s390
        seltests/zram: fix syntax error
      30ec5682