• Masami Hiramatsu's avatar
    perf probe: Support multiprobe event · 72363540
    Masami Hiramatsu authored
    Support multiprobe event if the event is based on function and lines and
    kernel supports it. In this case, perf probe creates the first probe
    with an event, and tries to append following probes on that event, since
    those probes must be on the same source code line.
    
    Before this patch;
    
      # perf probe -a vfs_read:18
      Added new events:
        probe:vfs_read_L18   (on vfs_read:18)
        probe:vfs_read_L18_1 (on vfs_read:18)
    
      You can now use it in all perf tools, such as:
    
      	perf record -e probe:vfs_read_L18_1 -aR sleep 1
    
      #
    
    After this patch (on multiprobe supported kernel)
      # perf probe -a vfs_read:18
      Added new events:
        probe:vfs_read_L18   (on vfs_read:18)
        probe:vfs_read_L18   (on vfs_read:18)
    
      You can now use it in all perf tools, such as:
    
      	perf record -e probe:vfs_read_L18 -aR sleep 1
    
      #
    
    Committer testing:
    
    On a kernel that doesn't support multiprobe events, after this patch:
    
      # uname -a
      Linux quaco 5.3.8-200.fc30.x86_64 #1 SMP Tue Oct 29 14:46:22 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux
      # grep append /sys/kernel/debug/tracing/README
      	    be modified by appending '.descending' or '.ascending' to a
      	    can be modified by appending any of the following modifiers
      #
      # perf probe -a vfs_read:18
      Added new events:
        probe:vfs_read_L18   (on vfs_read:18)
        probe:vfs_read_L18_1 (on vfs_read:18)
    
      You can now use it in all perf tools, such as:
    
      	perf record -e probe:vfs_read_L18_1 -aR sleep 1
    
      # perf probe -l
        probe:vfs_read_L18   (on vfs_read:18@fs/read_write.c)
        probe:vfs_read_L18_1 (on vfs_read:18@fs/read_write.c)
      #
    Signed-off-by: default avatarMasami Hiramatsu <mhiramat@kernel.org>
    Tested-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
    Cc: Namhyung Kim <namhyung@kernel.org>
    Cc: Ravi Bangoria <ravi.bangoria@linux.ibm.com>
    Cc: Steven Rostedt (VMware) <rostedt@goodmis.org>
    Cc: Tom Zanussi <tom.zanussi@linux.intel.com>
    Link: http://lore.kernel.org/lkml/157406475010.24476.586290752591512351.stgit@devnote2Signed-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
    72363540
probe-event.c 81.3 KB