1. 31 Oct, 2018 39 commits
  2. 30 Oct, 2018 1 commit
    • Linus Torvalds's avatar
      Merge tag 'trace-v4.20' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace · 343a9f35
      Linus Torvalds authored
      Pull tracing updates from Steven Rostedt:
       "The biggest change here is the updates to kprobes
      
        Back in January I posted patches to create function based events.
        These were the events that you suggested I make to allow developers to
        easily create events in code where no trace event exists. After
        posting those changes for review, it was suggested that we implement
        this instead with kprobes.
      
        The problem with kprobes is that the interface is too complex and
        needs to be simplified. Masami Hiramatsu posted patches in March and
        I've been playing with them a bit. There's been a bit of clean up in
        the kprobe code that was inspired by the function based event patches,
        and a couple of enhancements to the kprobe event interface.
      
         - If the arch supports it (we added support for x86), you can place a
           kprobe event at the start of a function and use $arg1, $arg2, etc
           to reference the arguments of a function. (Before you needed to
           know what register or where on the stack the argument was).
      
         - The second is a way to see array of events. For example, if you
           reference a mac address, you can add:
      
      	echo 'p:mac ip_rcv perm_addr=+574($arg2):x8[6]' > kprobe_events
      
           And this will produce:
      
      	mac: (ip_rcv+0x0/0x140) perm_addr={0x52,0x54,0x0,0xc0,0x76,0xec}
      
        Other changes include
      
         - Exporting trace_dump_stack to modules
      
         - Have the stack tracer trace the entire stack (stop trying to remove
           tracing itself, as we keep removing too much).
      
         - Added support for SDT in uprobes"
      
      [ SDT - "Statically Defined Tracing" are userspace markers for tracing.
        Let's not use random TLA's in explanations unless they are fairly
        well-established as generic (at least for kernel people) - Linus ]
      
      * tag 'trace-v4.20' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace: (24 commits)
        tracing: Have stack tracer trace full stack
        tracing: Export trace_dump_stack to modules
        tracing: probeevent: Fix uninitialized used of offset in parse args
        tracing/kprobes: Allow kprobe-events to record module symbol
        tracing/kprobes: Check the probe on unloaded module correctly
        tracing/uprobes: Fix to return -EFAULT if copy_from_user failed
        tracing: probeevent: Add $argN for accessing function args
        x86: ptrace: Add function argument access API
        tracing: probeevent: Add array type support
        tracing: probeevent: Add symbol type
        tracing: probeevent: Unify fetch_insn processing common part
        tracing: probeevent: Append traceprobe_ for exported function
        tracing: probeevent: Return consumed bytes of dynamic area
        tracing: probeevent: Unify fetch type tables
        tracing: probeevent: Introduce new argument fetching code
        tracing: probeevent: Remove NOKPROBE_SYMBOL from print functions
        tracing: probeevent: Cleanup argument field definition
        tracing: probeevent: Cleanup print argument functions
        trace_uprobe: support reference counter in fd-based uprobe
        perf probe: Support SDT markers having reference counter (semaphore)
        ...
      343a9f35