1. 10 12月, 2013 10 次提交
  2. 09 12月, 2013 1 次提交
  3. 06 12月, 2013 1 次提交
    • S
      tools lib traceevent: Report better error message on bad function args · 3a3ffa2e
      Steven Rostedt 提交于
      When Jiri Olsa was writing a function callback for
      scsi_trace_parse_cdb(), he thought that the traceevent library had a
      bug in it because he was getting this error:
      
        Error: expected ')' but read ','
        Error: expected ')' but read ','
        Error: expected ')' but read ','
        Error: expected ')' but read ','
      
      But in truth, he didn't have the write number of arguments for the
      function callback, and the error was the library detecting the
      discrepancy. A better error message would have prevented the confusion:
      
        Error: function 'scsi_trace_parse_cdb()' only expects 2 arguments but event scsi_dispatch_cmd_timeout has more
        Error: function 'scsi_trace_parse_cdb()' only expects 2 arguments but event scsi_dispatch_cmd_start has more
        Error: function 'scsi_trace_parse_cdb()' only expects 2 arguments but event scsi_dispatch_cmd_error has more
        Error: function 'scsi_trace_parse_cdb()' only expects 2 arguments but event scsi_dispatch_cmd_done has more
      
      Or
      
        Error: function 'scsi_trace_parse_cdb()' expects 4 arguments but event scsi_dispatch_cmd_timeout only uses 3
        Error: function 'scsi_trace_parse_cdb()' expects 4 arguments but event scsi_dispatch_cmd_start only uses 3
        Error: function 'scsi_trace_parse_cdb()' expects 4 arguments but event scsi_dispatch_cmd_error only uses 3
        Error: function 'scsi_trace_parse_cdb()' expects 4 arguments but event scsi_dispatch_cmd_done only uses 3
      Signed-off-by: NSteven Rostedt <rostedt@goodmis.org>
      Link: http://lkml.kernel.org/n/tip-a4c34w62vl0diitvxb7bt3er@git.kernel.orgSigned-off-by: NJiri Olsa <jolsa@redhat.com>
      Signed-off-by: NArnaldo Carvalho de Melo <acme@redhat.com>
      3a3ffa2e
  4. 05 12月, 2013 28 次提交
    • D
      perf trace: Fix summary percentage when processing files · 3160565f
      David Ahern 提交于
      Getting a divide by 0 when events are processed from a file:
      
         perf trace -i perf.data -s
         ...
         dnsmasq (1684), 10 events, inf%, 0.000 msec
      
      The problem is that the event count is not incremented as events are
      processed. With this patch:
      
         perf trace -i perf.data -s
         ...
         dnsmasq (1684), 10 events, 8.9%, 0.000 msec
      Signed-off-by: NDavid Ahern <dsahern@gmail.com>
      Link: http://lkml.kernel.org/r/1386211302-31303-4-git-send-email-dsahern@gmail.comSigned-off-by: NArnaldo Carvalho de Melo <acme@redhat.com>
      3160565f
    • D
      perf trace: Add support for syscalls vs raw_syscalls · 9aca7f17
      David Ahern 提交于
      Older kernels (e.g., RHEL6) do system call tracing via
      syscalls:sys_{enter,exit} rather than raw_syscalls. Update perf-trace to
      detect lack of raw_syscalls support and try syscalls.
      Signed-off-by: NDavid Ahern <dsahern@gmail.com>
      Link: http://lkml.kernel.org/r/1386211302-31303-2-git-send-email-dsahern@gmail.comSigned-off-by: NArnaldo Carvalho de Melo <acme@redhat.com>
      9aca7f17
    • J
      tools lib traceevent: Update kvm plugin with is_writable_pte helper · 6d65894b
      Jiri Olsa 提交于
      Adding is_writable_pte print helper function, so the
      kvmmmu:fast_page_fault print format gets resolved properly.
      
      The diff of 'perf script' output generated by old and new code:
      (data was generated by 'perf record -e 'kvm:*,kvmmmu:*' -a')
      
        --- script.kvm.old
        +++ script.kvm.new
        - qemu-system-x86  3290 [002] 10708.755312: kvmmmu:fast_page_fault: [FAILED TO PARSE] vcpu_id=0 gva=4094486080 error_code=3 sptep=0xffff88019f1e3670 old_spte=336391285 new_spte=336391287 retry=1
        + qemu-system-x86  3290 [002] 10708.755312: kvmmmu:fast_page_fault: vcpu 0 gva f40ce640 error_code P|W sptep 0xffff88019f1e3670 old 0x140cec75 new 140cec77 spurious 0 fixed 1
      Signed-off-by: NJiri Olsa <jolsa@redhat.com>
      Cc: Corey Ashford <cjashfor@linux.vnet.ibm.com>
      Cc: David Ahern <dsahern@gmail.com>
      Cc: Frederic Weisbecker <fweisbec@gmail.com>
      Cc: Ingo Molnar <mingo@elte.hu>
      Cc: Namhyung Kim <namhyung@kernel.org>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
      Cc: Steven Rostedt <rostedt@goodmis.org>
      Link: http://lkml.kernel.org/r/1386076182-14484-28-git-send-email-jolsa@redhat.comSigned-off-by: NArnaldo Carvalho de Melo <acme@redhat.com>
      6d65894b
    • J
      tools lib traceevent: Remove malloc_or_die from plugin_function.c · d8e56c98
      Jiri Olsa 提交于
      Removing malloc_or_die calls from plugin_function.c, replacing them and
      factoring the code with standard realloc and error path.
      Suggested-by: NNamhyung Kim <namhyung@kernel.org>
      Signed-off-by: NJiri Olsa <jolsa@redhat.com>
      Cc: Corey Ashford <cjashfor@linux.vnet.ibm.com>
      Cc: David Ahern <dsahern@gmail.com>
      Cc: Frederic Weisbecker <fweisbec@gmail.com>
      Cc: Ingo Molnar <mingo@elte.hu>
      Cc: Namhyung Kim <namhyung@kernel.org>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
      Cc: Steven Rostedt <rostedt@goodmis.org>
      Link: http://lkml.kernel.org/r/1386076182-14484-27-git-send-email-jolsa@redhat.comSigned-off-by: NArnaldo Carvalho de Melo <acme@redhat.com>
      d8e56c98
    • J
      tools lib traceevent: Several cleanups for function plugin · 39956e78
      Jiri Olsa 提交于
      Several cleanups suggested by Namhyung:
      
        * Remove index field from struct func_stack as it's not needed.
      
        * Rename get_index into add_and_get_index.
      
        * Use '%*X' format string capability instead of the loop
      Suggested-by: NNamhyung Kim <namhyung@kernel.org>
      Signed-off-by: NJiri Olsa <jolsa@redhat.com>
      Cc: Corey Ashford <cjashfor@linux.vnet.ibm.com>
      Cc: David Ahern <dsahern@gmail.com>
      Cc: Frederic Weisbecker <fweisbec@gmail.com>
      Cc: Ingo Molnar <mingo@elte.hu>
      Cc: Namhyung Kim <namhyung@kernel.org>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
      Cc: Steven Rostedt <rostedt@goodmis.org>
      Link: http://lkml.kernel.org/r/1386076182-14484-26-git-send-email-jolsa@redhat.comSigned-off-by: NArnaldo Carvalho de Melo <acme@redhat.com>
      39956e78
    • J
      tools lib traceevent: Use pevent_print_func_field in hrtimer_start handler · b32cea65
      Jiri Olsa 提交于
      The pevent_print_func_field function encompasses all the functionality
      used in the hrtimer_start handler. Change the handler to use this
      function.
      
      This also unifies the function field output with the
      hrtimer_expire_entry handler.
      Suggested-by: NSteven Rostedt <rostedt@goodmis.org>
      Signed-off-by: NJiri Olsa <jolsa@redhat.com>
      Cc: Corey Ashford <cjashfor@linux.vnet.ibm.com>
      Cc: David Ahern <dsahern@gmail.com>
      Cc: Frederic Weisbecker <fweisbec@gmail.com>
      Cc: Ingo Molnar <mingo@elte.hu>
      Cc: Namhyung Kim <namhyung@kernel.org>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
      Cc: Steven Rostedt <rostedt@goodmis.org>
      Link: http://lkml.kernel.org/r/1386076182-14484-25-git-send-email-jolsa@redhat.comSigned-off-by: NArnaldo Carvalho de Melo <acme@redhat.com>
      b32cea65
    • J
      tools lib traceevent: Use static functions in jbd2 plugin · f04015ec
      Jiri Olsa 提交于
      There's no need for following functions to be global:
      
        process_jbd2_dev_to_name
        process_jiffies_to_msecs
      
      Make them static.
      Signed-off-by: NJiri Olsa <jolsa@redhat.com>
      Cc: Corey Ashford <cjashfor@linux.vnet.ibm.com>
      Cc: David Ahern <dsahern@gmail.com>
      Cc: Frederic Weisbecker <fweisbec@gmail.com>
      Cc: Ingo Molnar <mingo@elte.hu>
      Cc: Namhyung Kim <namhyung@kernel.org>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
      Cc: Steven Rostedt <rostedt@goodmis.org>
      Link: http://lkml.kernel.org/r/1386076182-14484-24-git-send-email-jolsa@redhat.comSigned-off-by: NArnaldo Carvalho de Melo <acme@redhat.com>
      f04015ec
    • J
      tools lib traceevent: Remove malloc_or_die from event-plugin.c · f9bb36af
      Jiri Olsa 提交于
      Removing malloc_or_die calls from event-plugin.c,
      replacing them with standard malloc and error path.
      Suggested-by: NNamhyung Kim <namhyung@kernel.org>
      Signed-off-by: NJiri Olsa <jolsa@redhat.com>
      Acked-by: NSteven Rostedt <rostedt@goodmis.org>
      Cc: Corey Ashford <cjashfor@linux.vnet.ibm.com>
      Cc: David Ahern <dsahern@gmail.com>
      Cc: Frederic Weisbecker <fweisbec@gmail.com>
      Cc: Ingo Molnar <mingo@elte.hu>
      Cc: Namhyung Kim <namhyung@kernel.org>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
      Cc: Steven Rostedt <rostedt@goodmis.org>
      Link: http://lkml.kernel.org/r/1386076182-14484-23-git-send-email-jolsa@redhat.comSigned-off-by: NArnaldo Carvalho de Melo <acme@redhat.com>
      f9bb36af
    • J
      tools lib traceevent: Add cfg80211 plugin · 94371473
      Jiri Olsa 提交于
      Adding cfg80211 plugin.
      
      This plugin adds handler for __le16_to_cpup function
      t properly parse following tracepoint events:
        cfg80211:cfg80211_tx_mlme_mgmt
        cfg80211:cfg80211_rx_mlme_mgmt
        cfg80211:cfg80211_rx_unprot_mlme_mgmt
      
      The diff of 'perf script' output generated by old and new code:
      (data was generated by 'perf record -e 'cfg80211:*' -a')
      
        --- script.cfg80211.old
        +++ script.cfg80211.new
        -        ifconfig  2705 [003]   662.896560: cfg80211:cfg80211_tx_mlme_mgmt: [FAILED TO PARSE] name=wlan0 ifindex=3 frame=ARRAY[c0, 00, 00, 00, 00, 3a, 98, a0, 30, 51, 10, 0b, a9, c6, f4, 74, 00, 3a, 98, a0, 30, 51, 00, 00, 03, 00]
        +        ifconfig  2705 [003]   662.896560: cfg80211:cfg80211_tx_mlme_mgmt: netdev:wlan0(3), ftype:0xc0
        -   kworker/u16:0  1697 [002]   664.808210: cfg80211:cfg80211_rx_mlme_mgmt: [FAILED TO PARSE] name=wlan0 ifindex=3 frame=ARRAY[b0, 00, da, 00, 10, 0b, a9, c6, f4, 74, d8, 24, bd, a1, 26, 31, d8, 24, bd, a1, 26, 31, 10, b7, 00, 00, 02, 00, 00, 00]
        +   kworker/u16:0  1697 [002]   664.808210: cfg80211:cfg80211_rx_mlme_mgmt: netdev:wlan0(3), ftype:0xb0
      Signed-off-by: NJiri Olsa <jolsa@redhat.com>
      Cc: Corey Ashford <cjashfor@linux.vnet.ibm.com>
      Cc: David Ahern <dsahern@gmail.com>
      Cc: Frederic Weisbecker <fweisbec@gmail.com>
      Cc: Ingo Molnar <mingo@elte.hu>
      Cc: Namhyung Kim <namhyung@kernel.org>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
      Cc: Steven Rostedt <rostedt@goodmis.org>
      Link: http://lkml.kernel.org/r/1386076182-14484-22-git-send-email-jolsa@redhat.comSigned-off-by: NArnaldo Carvalho de Melo <acme@redhat.com>
      94371473
    • J
      tools lib traceevent: Add scsi plugin · 04010929
      Jiri Olsa 提交于
      Adding scsi plugin.
      
      This plugin adds fields resolving functions for following tracepoint
      events:
      
        scsi:scsi_dispatch_cmd_start
        scsi:scsi_dispatch_cmd_error
        scsi:scsi_dispatch_cmd_done
        scsi:scsi_dispatch_cmd_timeout
      
      The diff of 'perf script' output generated by old and new code:
      (data was generated by 'perf record -e 'scsi:scsi_dispatch_cmd*' -a)
      
        -         swapper     0 [000]  6620.491019: scsi:scsi_dispatch_cmd_done: [FAILED TO PARSE] host_no=0 channel=0 id=0 lun=0 result=0 opcode=53 cmd_len=10 data_sglen=0 prot_sglen=0 prot_op=0 cmnd=5
        +         swapper     0 [000]  6620.491019: scsi:scsi_dispatch_cmd_done: host_no=0 channel=0 id=0 lun=0 data_sgl=0 prot_sgl=0 prot_op=SCSI_PROT_NORMAL cmnd=(SYNCHRONIZE_CACHE - raw=35 00 00 00 00 00 00 00 00 00) result=(driver=DRIVER_OK host=DID_OK message=COMMAND_COMPLETE status=SAM_STAT_GOOD)
        -     kworker/0:0 21554 [000]  6620.491126: scsi:scsi_dispatch_cmd_start: [FAILED TO PARSE] host_no=0 channel=0 id=0 lun=0 opcode=42 cmd_len=10 data_sglen=1 prot_sglen=0 prot_op=0 cmnd=*
        +     kworker/0:0 21554 [000]  6620.491126: scsi:scsi_dispatch_cmd_start: host_no=0 channel=0 id=0 lun=0 data_sgl=1 prot_sgl=0 prot_op=SCSI_PROT_NORMAL cmnd=(WRITE_10 lba=570899168 txlen=8 protect=0 raw=2a 00 22 07 3a e0 00 00 08 00)
        -     jbd2/dm-3-8   593 [002]  6621.607992: scsi:scsi_dispatch_cmd_error: [FAILED TO PARSE] host_no=0 channel=0 id=0 lun=0 rtn=4182 opcode=53 cmd_len=10 data_sglen=0 prot_sglen=0 prot_op=0 cmnd=5
        +     jbd2/dm-3-8   593 [002]  6621.607992: scsi:scsi_dispatch_cmd_error: host_no=0 channel=0 id=0 lun=0 data_sgl=0 prot_sgl=0 prot_op=SCSI_PROT_NORMAL cmnd=(SYNCHRONIZE_CACHE - raw=35 00 00 00 00 00 00 00 00 00) rtn=4182
      
      NOTE I couldn't generate scsi_dispatch_cmd_timeout tracepoint,
           but it's similar to the rest, so I believe it's ok.
      Signed-off-by: NJiri Olsa <jolsa@redhat.com>
      Cc: "Martin K. Petersen" <martin.petersen@oracle.com>
      Cc: Corey Ashford <cjashfor@linux.vnet.ibm.com>
      Cc: David Ahern <dsahern@gmail.com>
      Cc: Frederic Weisbecker <fweisbec@gmail.com>
      Cc: Ingo Molnar <mingo@elte.hu>
      Cc: Martin K. Petersen <martin.petersen@oracle.com>
      Cc: Namhyung Kim <namhyung@kernel.org>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
      Cc: Steven Rostedt <rostedt@goodmis.org>
      Link: http://lkml.kernel.org/r/1386076182-14484-21-git-send-email-jolsa@redhat.comSigned-off-by: NArnaldo Carvalho de Melo <acme@redhat.com>
      04010929
    • J
      tools lib traceevent: Add xen plugin · 40c03ad5
      Jiri Olsa 提交于
      Adding xen plugin.
      
      This plugin adds fields resolving for following tracepoint events:
      
        xen:xen_mc_entry
        xen:xen_mc_extend_args
      
      The diff of 'perf script' output generated by old and new code: (data
      was generated by 'perf record -e 'xen:*' ls')
      
        --- script.xen.old
        +++ script.xen.new
        -         swapper     0 [002]   136.267492: xen:xen_mc_entry: [FAILED TO PARSE] op=3 nargs=2 args=ARRAY[18, 00, 00, 00, 00, 00, 00, 00, 00, e0, d4, 4b, 04, 88, ff, ff, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00]
        +         swapper     0 [002]   136.267492: xen:xen_mc_entry: op 3(stack_switch) args [18, 0, 0, 0, 0, 0]
        -            perf  1970 [008]   136.273319: xen:xen_mc_extend_args: [FAILED TO PARSE] op=1 args=16 res=1
        +            perf  1970 [008]   136.273319: xen:xen_mc_extend_args: extending op 1(mmu_update) by 16 bytes res ???
      
      NOTE We still do not handle the 'sizeof' and fail to parse following xen
      tracepoints:
      
        xen:xen_mmu_set_pte
        xen:xen_mmu_set_pte_atomic
        xen:xen_mmu_set_domain_pte
        xen:xen_mmu_set_pte_at
        xen:xen_mmu_set_pmd
        xen:xen_mmu_set_pud
        xen:xen_mmu_set_pgd
        xen:xen_mmu_ptep_modify_prot_start
        xen:xen_mmu_ptep_modify_prot_commit
      Signed-off-by: NJiri Olsa <jolsa@redhat.com>
      Cc: Corey Ashford <cjashfor@linux.vnet.ibm.com>
      Cc: David Ahern <dsahern@gmail.com>
      Cc: Frederic Weisbecker <fweisbec@gmail.com>
      Cc: Ingo Molnar <mingo@elte.hu>
      Cc: Jeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com>
      Cc: Namhyung Kim <namhyung@kernel.org>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
      Cc: Steven Rostedt <rostedt@goodmis.org>
      Link: http://lkml.kernel.org/r/1386076182-14484-20-git-send-email-jolsa@redhat.comSigned-off-by: NArnaldo Carvalho de Melo <acme@redhat.com>
      40c03ad5
    • J
      tools lib traceevent: Add function plugin · 07a180a0
      Jiri Olsa 提交于
      Backporting function plugin.
      
      Backported from Steven Rostedt's trace-cmd repo (HEAD 0f2c2fb):
      git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/trace-cmd.git
      
      This plugin adds function and parent function fields resolving for
      ftrace:function tracepoint event.
      
      The diff of 'perf script' output generated by old and new code:
      (data was generated by 'perf record -e ftrace:function ls')
      
        --- script.function.old
        +++ script.function.new
        -              ls 10781 [001] 32667.291379: ftrace:function:  ffffffff811adb80 <-- ffffffff811afc48
        -              ls 10781 [001] 32667.291379: ftrace:function:  ffffffff811b35d0 <-- ffffffff811adb9b
        -              ls 10781 [001] 32667.291380: ftrace:function:  ffffffff811b3520 <-- ffffffff811b35e8
        -              ls 10781 [001] 32667.291380: ftrace:function:  ffffffff811b2720 <-- ffffffff811b3549
        -              ls 10781 [001] 32667.291381: ftrace:function:  ffffffff81297e10 <-- ffffffff811b356c
        -              ls 10781 [001] 32667.291381: ftrace:function:  ffffffff81298f40 <-- ffffffff81297e2c
        -              ls 10781 [001] 32667.291382: ftrace:function:  ffffffff81076160 <-- ffffffff811afbf0
        -              ls 10781 [001] 32667.291383: ftrace:function:  ffffffff811c3eb0 <-- ffffffff811afbfc
        -              ls 10781 [001] 32667.291383: ftrace:function:  ffffffff8164e100 <-- ffffffff811c3ed8
        -              ls 10781 [001] 32667.291384: ftrace:function:  ffffffff811a5d10 <-- ffffffff811c3f53
        -              ls 10781 [001] 32667.291384: ftrace:function:  ffffffff811e8e70 <-- ffffffff811a5d58
        -              ls 10781 [001] 32667.291385: ftrace:function:  ffffffff811f38e0 <-- ffffffff811a5d63
        -              ls 10781 [001] 32667.291385: ftrace:function:  ffffffff811a9ff0 <-- ffffffff811a5d6b
        -              ls 10781 [001] 32667.291386: ftrace:function:  ffffffff811a9fa0 <-- ffffffff811aa015
        -              ls 10781 [001] 32667.291387: ftrace:function:  ffffffff810851c0 <-- ffffffff811aa053
        -              ls 10781 [001] 32667.291387: ftrace:function:  ffffffff81090e00 <-- ffffffff81085211
        +              ls 10781 [001] 32667.291379: ftrace:function: would_dump <-- setup_new_exec
        +              ls 10781 [001] 32667.291379: ftrace:function:    inode_permission <-- would_dump
        +              ls 10781 [001] 32667.291380: ftrace:function:       __inode_permission <-- inode_permission
        +              ls 10781 [001] 32667.291380: ftrace:function:          generic_permission <-- __inode_permission
        +              ls 10781 [001] 32667.291381: ftrace:function:          security_inode_permission <-- __inode_permission
        +              ls 10781 [001] 32667.291381: ftrace:function:             cap_inode_permission <-- security_inode_permission
        +              ls 10781 [001] 32667.291382: ftrace:function: flush_signal_handlers <-- setup_new_exec
        +              ls 10781 [001] 32667.291383: ftrace:function: do_close_on_exec <-- setup_new_exec
        +              ls 10781 [001] 32667.291383: ftrace:function:    _raw_spin_lock <-- do_close_on_exec
        +              ls 10781 [001] 32667.291384: ftrace:function:    filp_close <-- do_close_on_exec
        +              ls 10781 [001] 32667.291384: ftrace:function:       dnotify_flush <-- filp_close
        +              ls 10781 [001] 32667.291385: ftrace:function:       locks_remove_posix <-- filp_close
        +              ls 10781 [001] 32667.291385: ftrace:function:       fput <-- filp_close
        +              ls 10781 [001] 32667.291386: ftrace:function:          file_sb_list_del <-- fput
        +              ls 10781 [001] 32667.291387: ftrace:function:          task_work_add <-- fput
        +              ls 10781 [001] 32667.291387: ftrace:function:             kick_process <-- task_work_add
      
      Removing options support as it's not backported yet.
      Currently this plugin supports 2 options:
       'parent' to display parent function
       'indent' to show function call indents
      
      Enabling both of them by default.
      Signed-off-by: NJiri Olsa <jolsa@redhat.com>
      Cc: Corey Ashford <cjashfor@linux.vnet.ibm.com>
      Cc: David Ahern <dsahern@gmail.com>
      Cc: Frederic Weisbecker <fweisbec@gmail.com>
      Cc: Ingo Molnar <mingo@elte.hu>
      Cc: Namhyung Kim <namhyung@kernel.org>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
      Cc: Steven Rostedt <rostedt@goodmis.org>
      Link: http://lkml.kernel.org/r/1386076182-14484-19-git-send-email-jolsa@redhat.comSigned-off-by: NSteven Rostedt <rostedt@goodmis.org>
      Signed-off-by: NArnaldo Carvalho de Melo <acme@redhat.com>
      07a180a0
    • J
      tools lib traceevent: Add sched_switch plugin · 83e815ee
      Jiri Olsa 提交于
      Backporting sched_switch plugin.
      
      Backported from Steven Rostedt's trace-cmd repo (HEAD 0f2c2fb):
      git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/trace-cmd.git
      
      This plugin adds fields resolving for sched:sched_switch tracepoint
      event.
      
      The diff of 'perf script' output generated by old and new code:
      (data was generated by 'perf record -e sched:sched_switch -a')
      
        --- script.sched_switch.old
        +++ script.sched_switch.new
        -            perf   577 [002] 30965.311852: sched:sched_switch: prev_comm=perf prev_pid=577 prev_prio=120 prev_state=S ==> next_comm=swapper/2 next_pid=0 next_prio=120
        +            perf   577 [002] 30965.311852: sched:sched_switch: perf:577 [120] S ==> swapper/2:0 [120]
      Signed-off-by: NJiri Olsa <jolsa@redhat.com>
      Cc: Corey Ashford <cjashfor@linux.vnet.ibm.com>
      Cc: David Ahern <dsahern@gmail.com>
      Cc: Frederic Weisbecker <fweisbec@gmail.com>
      Cc: Ingo Molnar <mingo@elte.hu>
      Cc: Namhyung Kim <namhyung@kernel.org>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
      Cc: Steven Rostedt <rostedt@goodmis.org>
      Link: http://lkml.kernel.org/r/1386076182-14484-18-git-send-email-jolsa@redhat.comSigned-off-by: NSteven Rostedt <rostedt@goodmis.org>
      Signed-off-by: NArnaldo Carvalho de Melo <acme@redhat.com>
      83e815ee
    • J
      tools lib traceevent: Add mac80211 plugin · de705e2e
      Jiri Olsa 提交于
      Backporting mac80211 plugin.
      
      Backported from Steven Rostedt's trace-cmd repo (HEAD 0f2c2fb):
      git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/trace-cmd.git
      
      This plugin adds changed field resolving for
      mac80211:drv_bss_info_changed tracepoint event.
      
      The diff of 'perf script' output generated by old and new code:
      (data was generated by 'perf record -e 'mac80211:drv_bss_info_changed' -a')
      
        --- script.mac80211.old
        +++ script.mac80211.new
        -        ifconfig  3711 [000]  1290.446492: mac80211:drv_bss_info_changed: phy0 vif:wlan0(2) changed:0x309f
        +        ifconfig  3711 [000]  1290.446492: mac80211:drv_bss_info_changed: phy0 vif:wlan0(2)
        +                                                                 assoc:0 aid:2 cts:0 shortpre:0 shortslot:0 dtimper:1
        +                                                                 bcnint:102 assoc_cap:0x431 basic_rates:0xf enable_beacon:0
        +                                                                 ht_operation_mode:0
      
      Omitting the mac80211:drv_config tracepoint handling because the kernel
      tracepoint changed its prototype and the plugin handler is no longer
      working.
      Signed-off-by: NJiri Olsa <jolsa@redhat.com>
      Cc: Corey Ashford <cjashfor@linux.vnet.ibm.com>
      Cc: David Ahern <dsahern@gmail.com>
      Cc: Frederic Weisbecker <fweisbec@gmail.com>
      Cc: Ingo Molnar <mingo@elte.hu>
      Cc: Namhyung Kim <namhyung@kernel.org>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
      Cc: Steven Rostedt <rostedt@goodmis.org>
      Link: http://lkml.kernel.org/r/1386076182-14484-17-git-send-email-jolsa@redhat.comSigned-off-by: NArnaldo Carvalho de Melo <acme@redhat.com>
      de705e2e
    • J
      tools lib traceevent: Add kvm plugin · 35d79f9f
      Jiri Olsa 提交于
      Backporting kvm plugin.
      
      Backported from Steven Rostedt's trace-cmd repo (HEAD 0f2c2fb):
      git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/trace-cmd.git
      
      This plugin adds field resolving functions for following
      tracepoint events:
        kvm:kvm_exit
        kvm:kvm_emulate_insn
        kvm:kvm_nested_vmexit
        kvm:kvm_nested_vmexit_inject
        kvmmmu:kvm_mmu_get_page
        kvmmmu:kvm_mmu_sync_page
        kvmmmu:kvm_mmu_unsync_page
        kvmmmu:kvm_mmu_zap_page
        kvmmmu:kvm_mmu_prepare_zap_page
      
      The diff of 'perf script' output generated by old and new code:
      (data was generated by 'perf record -e 'kvm:*,kvmmmu:*' -a')
      
        --- script.kvm.old
        +++ script.kvm.new
          qemu-system-x86 17414 [000]  6868.995053: kvm:kvm_exit: reason EPT_VIOLATION rip 0xfff0 info 184 0
          qemu-system-x86 17414 [000]  6868.995109: kvm:kvm_emulate_insn: f0000:c46b:e4 71 (real)
        - qemu-system-x86  3006 [002] 10562.079422: kvmmmu:kvm_mmu_get_page: [FAILED TO PARSE] mmu_valid_gen=0x2 gfn=0 role=122884 root_count=0 unsync=0 created=1
        + qemu-system-x86  3006 [002] 10562.079422: kvmmmu:kvm_mmu_get_page: new sp gfn 0 0/4 q0 direct --- !pge !nxe root 0 sync
        - qemu-system-x86  3006 [002] 10562.080502: kvmmmu:kvm_mmu_prepare_zap_page: [FAILED TO PARSE] mmu_valid_gen=0x2 gfn=0 role=122884 root_count=1 unsync=0
        + qemu-system-x86  3006 [002] 10562.080502: kvmmmu:kvm_mmu_prepare_zap_page: 0/4 q0 direct --- !pge !nxe root 1 sync
          qemu-system-x86  3290 [002] 10708.755312: kvmmmu:fast_page_fault: [FAILED TO PARSE] vcpu_id=0 gva=4094486080 error_code=3 sptep=0xffff88019f1e3670 old_spte=336391285 new_spte=336391287 retry=1
        -          insmod  2576 [001]   781.731666: kvmmmu:kvm_mmu_sync_page: [FAILED TO PARSE] mmu_valid_gen=0x1 gfn=2 role=24624 root_count=10 unsync=1
        +          insmod  2576 [001]   781.731666: kvmmmu:kvm_mmu_sync_page: 3/0 q0 --- !pge !nxe root 10 unsync
        -          insmod  2576 [001]   781.731668: kvmmmu:kvm_mmu_unsync_page: [FAILED TO PARSE] mmu_valid_gen=0x1 gfn=2 role=24624 root_count=10 unsync=1
        +          insmod  2576 [001]   781.731668: kvmmmu:kvm_mmu_unsync_page: 3/0 q0 --- !pge !nxe root 10 unsync
      
      Note:
       - kvm_mmu_zap_page is replaced by kvm_mmu_prepare_zap_page
         in current kernel, keeping it for backward compatibility
       - some of the tracepoints keep the same output even with
         the plugin handling: kvm:kvm_exit, kvm:kvm_emulate_insn
       - the 'kvmmmu:fast_page_fault' is still broken because of
         missing is_writable_pte function and is fixed in another patch
       - ommited following tracepoints from backport because
         the output was buggy
           kvm:kvm_nested_vmexit
           kvm:kvm_nested_vmexit_inject
      
      Cc: Corey Ashford <cjashfor@linux.vnet.ibm.com>
      Cc: David Ahern <dsahern@gmail.com>
      Cc: Frederic Weisbecker <fweisbec@gmail.com>
      Cc: Ingo Molnar <mingo@elte.hu>
      Cc: Namhyung Kim <namhyung@kernel.org>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
      Cc: Steven Rostedt <rostedt@goodmis.org>
      Link: http://lkml.kernel.org/r/1386076182-14484-16-git-send-email-jolsa@redhat.comSigned-off-by: NJiri Olsa <jolsa@redhat.com>
      Signed-off-by: NSteven Rostedt <rostedt@goodmis.org>
      Signed-off-by: NArnaldo Carvalho de Melo <acme@redhat.com>
      35d79f9f
    • J
      tools lib traceevent: Add kmem plugin · f8256288
      Jiri Olsa 提交于
      Backporting kmem plugin.
      
      Backported from Steven Rostedt's trace-cmd repo (HEAD 0f2c2fb):
      git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/trace-cmd.git
      
      This plugin adds call_site field resolving for following tracepoint
      events:
      
        kmem:kfree
        kmem:kmalloc
        kmem:kmalloc_node
        kmem:kmem_cache_alloc
        kmem:kmem_cache_alloc_node
        kmem:kmem_cache_free
      
      The diff of 'perf script' output generated by old and new code: (data
      was generated by 'perf record -e 'kmem:*' -a')
      
        --- script.kmem.old
        +++ script.kmem.new
        -            perf 27846 [001] 29643.403319: kmem:kfree: call_site=ffffffff810e64f6 ptr=(nil)
        +            perf 27846 [001] 29643.403238: kmem:kfree: (__audit_syscall_exit+0x1f6) call_site=ffffffff810e64f6 ptr=(nil)
        -            perf 27846 [001] 29643.403337: kmem:kmem_cache_alloc: call_site=ffffffff812ff0c5 ptr=0xffff88020e155630 bytes_req=560 bytes_alloc=568 gfp_flags=GFP_KERNEL
        +            perf 27846 [001] 29643.403337: kmem:kmem_cache_alloc: (radix_tree_preload+0x35) call_site=ffffffff812ff0c5 ptr=0xffff88020e155630 bytes_req=560 bytes_alloc=568 gfp_flags=GFP_KERNEL
        -            perf 27846 [001] 29643.403342: kmem:kmem_cache_free: call_site=ffffffff8126ec61 ptr=0xffff88020dffe750
        +            perf 27846 [001] 29643.403342: kmem:kmem_cache_free: (jbd2_journal_stop+0x221) call_site=ffffffff8126ec61 ptr=0xffff88020dffe750
        -         firefox   954 [000] 29643.445477: kmem:kmem_cache_alloc_node: call_site=ffffffff8153c64e ptr=0xffff8801cecb4000 bytes_req=256 bytes_alloc=256 gfp_flags=GFP_KERNEL|GFP_REPEAT node=-1
        +         firefox   954 [000] 29643.445477: kmem:kmem_cache_alloc_node: (__alloc_skb+0x4e) call_site=ffffffff8153c64e ptr=0xffff8801cecb4000 bytes_req=256 bytes_alloc=256 gfp_flags=GFP_KERNEL|GFP_REPEAT node=-1
        -            perf 27846 [001] 29643.445510: kmem:kmalloc: call_site=ffffffff81250642 ptr=0xffff88020fd6c300 bytes_req=96 bytes_alloc=96 gfp_flags=GFP_NOFS|GFP_ZERO
        +            perf 27846 [001] 29643.445510: kmem:kmalloc: (ext4_ext_find_extent+0x362) call_site=ffffffff81250642 ptr=0xffff88020fd6c300 bytes_req=96 bytes_alloc=96 gfp_flags=GFP_NOFS|GFP_ZERO
        -               X   888 [002] 29643.445546: kmem:kmalloc_node: call_site=ffffffff8153c67e ptr=0xffff880103828e00 bytes_req=384 bytes_alloc=512 gfp_flags=GFP_KERNEL|GFP_NOWARN|GFP_REPEAT|GFP_NOMEMALLOC node=-1
        +               X   888 [002] 29643.445546: kmem:kmalloc_node: (__alloc_skb+0x7e) call_site=ffffffff8153c67e ptr=0xffff880103828e00 bytes_req=384 bytes_alloc=512 gfp_flags=GFP_KERNEL|GFP_NOWARN|GFP_REPEAT|GFP_NOMEMALLOC node=-1
      Signed-off-by: NJiri Olsa <jolsa@redhat.com>
      Cc: Corey Ashford <cjashfor@linux.vnet.ibm.com>
      Cc: David Ahern <dsahern@gmail.com>
      Cc: Frederic Weisbecker <fweisbec@gmail.com>
      Cc: Ingo Molnar <mingo@elte.hu>
      Cc: Namhyung Kim <namhyung@kernel.org>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
      Cc: Steven Rostedt <rostedt@goodmis.org>
      Link: http://lkml.kernel.org/r/1386076182-14484-15-git-send-email-jolsa@redhat.comSigned-off-by: NSteven Rostedt <rostedt@goodmis.org>
      Signed-off-by: NArnaldo Carvalho de Melo <acme@redhat.com>
      f8256288
    • J
      tools lib traceevent: Add hrtimer plugin · d9d13f8b
      Jiri Olsa 提交于
      Backporting hrtimer plugin.
      
      Backported from Steven Rostedt's trace-cmd repo (HEAD 0f2c2fb):
      git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/trace-cmd.git
      
      This plugin adds function field resolving for following tracepoint
      events:
      
        timer:hrtimer_expire_entry
        timer:hrtimer_start
      
      The diff of 'perf script' output generated by old and new code: (data
      was generated by 'perf record -e 'timer:hrtimer*' -a')
      
        --- script.hrtimer.old
        +++ script.hrtimer.new
        -         swapper     0 [000] 27405.519092: timer:hrtimer_start: [FAILED TO PARSE] hrtimer=0xffff88021e20e800 function=0xffffffff810c0e10 expires=27398383000000 softexpires=27398383000000
        +         swapper     0 [000] 27405.519103: timer:hrtimer_start: hrtimer=0xffff88021e20e800 function=tick_sched_timer expires=27398383000000 softexpires=27398383000000
        -         swapper     0 [001] 27405.519544: timer:hrtimer_expire_entry: [FAILED TO PARSE] hrtimer=0xffff880211334058 now=27398294182491 function=0xffffffff81086f20
        +         swapper     0 [001] 27405.519544: timer:hrtimer_expire_entry: hrtimer=0xffff880211334058 now=27398294182491 function=posix_timer_fn/0x0
      
      Check the 'function' field is translated into the function name.
      Signed-off-by: NJiri Olsa <jolsa@redhat.com>
      Cc: Corey Ashford <cjashfor@linux.vnet.ibm.com>
      Cc: David Ahern <dsahern@gmail.com>
      Cc: Frederic Weisbecker <fweisbec@gmail.com>
      Cc: Ingo Molnar <mingo@elte.hu>
      Cc: Namhyung Kim <namhyung@kernel.org>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
      Cc: Steven Rostedt <rostedt@goodmis.org>
      Link: http://lkml.kernel.org/r/1386076182-14484-14-git-send-email-jolsa@redhat.comSigned-off-by: NSteven Rostedt <rostedt@goodmis.org>
      Signed-off-by: NArnaldo Carvalho de Melo <acme@redhat.com>
      d9d13f8b
    • J
      tools lib traceevent: Add jbd2 plugin · e0549f11
      Jiri Olsa 提交于
      Backporting jbd2 plugin.
      
      Backported from Steven Rostedt's trace-cmd repo (HEAD 0f2c2fb):
      git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/trace-cmd.git
      
      This plugin adds field resolving functions for following tracepoint
      events:
      
        jbd2:jbd2_checkpoint_stats
        jbd2:jbd2_run_stats
      
      The diff of 'perf script' output generated by old and new code:
      (data was generated by 'perf record -e 'jbd2:jbd2_run_stats,jbd2:jbd2_checkpoint_stats' -a')
      
        --- script.jbd2.old
        +++ script.jbd2.new
        -     jbd2/dm-3-8   576 [000]  2983.748423: jbd2:jbd2_checkpoint_stats: [FAILED TO PARSE] dev=265289731 tid=0x3f2bbb chp_time=0x0 forced_to_close=0 written=0 dropped=2
        +     jbd2/dm-3-8   576 [000]  2983.748423: jbd2:jbd2_checkpoint_stats: dev 253,3 tid 4139963 chp_time 0 forced_to_close 0 written 0 dropped 2
        -     jbd2/dm-3-8   576 [000]  2983.852789: jbd2:jbd2_run_stats: [FAILED TO PARSE] dev=265289731 tid=0x3f2bc0 wait=0x0 request_delay=0x0 running=0x138d locked=0x0 flushing=0x0 logging=0x68 handle_count=2995 blocks=17 blocks_logged=18
        +     jbd2/dm-3-8   576 [000]  2983.852789: jbd2:jbd2_run_stats: dev 253,3 tid 4139968 wait 0 request_delay 0 running 5005 locked 0 flushing 0 logging 104 handle_count 2995 blocks 17 blocks_logged 18
      
      This plugin also adds jbd2_dev_to_name function, which was removed from
      jdb2 tracepoints recently. Keeping it in for backward compatibility
      reasons.
      Signed-off-by: NJiri Olsa <jolsa@redhat.com>
      Cc: Corey Ashford <cjashfor@linux.vnet.ibm.com>
      Cc: David Ahern <dsahern@gmail.com>
      Cc: Frederic Weisbecker <fweisbec@gmail.com>
      Cc: Ingo Molnar <mingo@elte.hu>
      Cc: Namhyung Kim <namhyung@kernel.org>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
      Cc: Steven Rostedt <rostedt@goodmis.org>
      Link: http://lkml.kernel.org/r/1386076182-14484-13-git-send-email-jolsa@redhat.comSigned-off-by: NSteven Rostedt <rostedt@goodmis.org>
      Signed-off-by: NArnaldo Carvalho de Melo <acme@redhat.com>
      e0549f11
    • J
      perf tools: Overload pr_stat traceevent print function · f772abc6
      Jiri Olsa 提交于
      The traceevent lib uses pr_stat to display all standard info. It's
      defined as __weak. Overloading it with perf version plugged into perf
      output system logic.
      
      Displaying the pr_stat stuff under '-v' option.
      Signed-off-by: NJiri Olsa <jolsa@redhat.com>
      Cc: Corey Ashford <cjashfor@linux.vnet.ibm.com>
      Cc: David Ahern <dsahern@gmail.com>
      Cc: Frederic Weisbecker <fweisbec@gmail.com>
      Cc: Ingo Molnar <mingo@elte.hu>
      Cc: Namhyung Kim <namhyung@kernel.org>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
      Cc: Steven Rostedt <rostedt@goodmis.org>
      Link: http://lkml.kernel.org/r/1386076182-14484-12-git-send-email-jolsa@redhat.comSigned-off-by: NArnaldo Carvalho de Melo <acme@redhat.com>
      f772abc6
    • J
      perf tools: Add trace-event global object for tracepoint interface · 97978b3e
      Jiri Olsa 提交于
      In order to get the proper plugins processing we need to use full
      trace-event interface when creating tracepoint events. So far we were
      using shortcut to get the parsed format.
      
      Moving current 'event_format__new' function into trace-event object as
      'trace_event__tp_format'.
      
      This function uses properly initialized global trace-event object,
      ensuring proper plugins processing.
      Signed-off-by: NJiri Olsa <jolsa@redhat.com>
      Cc: Corey Ashford <cjashfor@linux.vnet.ibm.com>
      Cc: David Ahern <dsahern@gmail.com>
      Cc: Frederic Weisbecker <fweisbec@gmail.com>
      Cc: Ingo Molnar <mingo@elte.hu>
      Cc: Namhyung Kim <namhyung@kernel.org>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
      Cc: Steven Rostedt <rostedt@goodmis.org>
      Link: http://lkml.kernel.org/r/1386076182-14484-11-git-send-email-jolsa@redhat.comSigned-off-by: NArnaldo Carvalho de Melo <acme@redhat.com>
      97978b3e
    • J
      perf tools: Add trace-event object · 29f5ffd3
      Jiri Olsa 提交于
      Add trace-event object to keep together 'struct pevent' object with its
      loaded plugins with following interface:
      
      int trace_event__init(struct trace_event *t);
      
        - Initalizes 'struct pevent' object and loads plugins for it
      
      void trace_event__cleanup(struct trace_event *t);
      
        - Cleanups both 'struct pevent' and plugins
      Signed-off-by: NJiri Olsa <jolsa@redhat.com>
      Cc: Corey Ashford <cjashfor@linux.vnet.ibm.com>
      Cc: David Ahern <dsahern@gmail.com>
      Cc: Frederic Weisbecker <fweisbec@gmail.com>
      Cc: Ingo Molnar <mingo@elte.hu>
      Cc: Namhyung Kim <namhyung@kernel.org>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
      Cc: Steven Rostedt <rostedt@goodmis.org>
      Link: http://lkml.kernel.org/r/1386076182-14484-10-git-send-email-jolsa@redhat.comSigned-off-by: NArnaldo Carvalho de Melo <acme@redhat.com>
      29f5ffd3
    • J
      perf tools: Add filename__read_str util function · cef82c9f
      Jiri Olsa 提交于
      Adding filename__read_str util function to read
      text file and return it in the char array.
      
      The interface is:
        int filename__read_str(const char *filename, char **buf, size_t *sizep)
      
        Returns 0/-1 if the read suceeded/fail respectively.
      
        buf  - place to store the data pointer
        size - place to store data size
      
      v2 change:
        - better error handling suggested by Namhyung Kim.
      Signed-off-by: NJiri Olsa <jolsa@redhat.com>
      Cc: Corey Ashford <cjashfor@linux.vnet.ibm.com>
      Cc: David Ahern <dsahern@gmail.com>
      Cc: Frederic Weisbecker <fweisbec@gmail.com>
      Cc: Ingo Molnar <mingo@elte.hu>
      Cc: Namhyung Kim <namhyung@kernel.org>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
      Cc: Steven Rostedt <rostedt@goodmis.org>
      Link: http://lkml.kernel.org/r/1386076182-14484-9-git-send-email-jolsa@redhat.comSigned-off-by: NArnaldo Carvalho de Melo <acme@redhat.com>
      cef82c9f
    • J
      perf tools: Add build and install plugins targets · 3d7c0144
      Jiri Olsa 提交于
      Adding 'plugins' target along with the libtraceevent.a, so plugins are
      built together with traceevent library.
      
      Adding 'install-traceevent-plugins' Makefile install target, instructing
      perf to install plugins into:
      
        $(HOME)/.traceevent/plugins
          - If installed localy under $HOME
      
        $(DESTDIR)/$(prefix)/$(libdir)/traceevent/plugins
          - If installed globally
      
      Examples:
        $ make install
        ...
        $ find ~/.traceevent/plugins/
        /home/jolsa/.traceevent/plugins/
        /home/jolsa/.traceevent/plugins/plugin_mac80211.so
        /home/jolsa/.traceevent/plugins/plugin_kvm.so
        /home/jolsa/.traceevent/plugins/plugin_scsi.so
        /home/jolsa/.traceevent/plugins/plugin_sched_switch.so
        /home/jolsa/.traceevent/plugins/plugin_xen.so
        /home/jolsa/.traceevent/plugins/plugin_cfg80211.so
        /home/jolsa/.traceevent/plugins/plugin_function.so
        /home/jolsa/.traceevent/plugins/plugin_kmem.so
        /home/jolsa/.traceevent/plugins/plugin_hrtimer.so
        /home/jolsa/.traceevent/plugins/plugin_jbd2.so
      
        $ sudo make install DESTDIR=/opt/perf/
        ...
        $ find /opt/perf/lib64/traceevent/plugins/
        /opt/perf/lib64/traceevent/plugins/
        /opt/perf/lib64/traceevent/plugins/plugin_kvm.so
        /opt/perf/lib64/traceevent/plugins/plugin_scsi.so
        /opt/perf/lib64/traceevent/plugins/plugin_mac80211.so
        /opt/perf/lib64/traceevent/plugins/plugin_hrtimer.so
        /opt/perf/lib64/traceevent/plugins/plugin_kmem.so
        /opt/perf/lib64/traceevent/plugins/plugin_jbd2.so
        /opt/perf/lib64/traceevent/plugins/plugin_sched_switch.so
        /opt/perf/lib64/traceevent/plugins/plugin_function.so
        /opt/perf/lib64/traceevent/plugins/plugin_cfg80211.so
        /opt/perf/lib64/traceevent/plugins/plugin_xen.so
      Signed-off-by: NJiri Olsa <jolsa@redhat.com>
      Cc: Corey Ashford <cjashfor@linux.vnet.ibm.com>
      Cc: David Ahern <dsahern@gmail.com>
      Cc: Frederic Weisbecker <fweisbec@gmail.com>
      Cc: Ingo Molnar <mingo@elte.hu>
      Cc: Namhyung Kim <namhyung@kernel.org>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
      Cc: Steven Rostedt <rostedt@goodmis.org>
      Link: http://lkml.kernel.org/r/1386076182-14484-8-git-send-email-jolsa@redhat.comSigned-off-by: NArnaldo Carvalho de Melo <acme@redhat.com>
      3d7c0144
    • J
      tools lib traceevent: Harmonize the install messages in lib-traceevent · f33c5cd7
      Jiri Olsa 提交于
      Removing the 'to ...' part out of the install message, because it does
      not fit to the rest of the build messages we use.
      
      Before:
        INSTALL  plugin_hrtimer.so    to      /home/jolsa/libexec/perf-core/traceevent/plugins
        INSTALL  plugin_jbd2.so       to      /home/jolsa/libexec/perf-core/traceevent/plugins
        INSTALL  plugin_kmem.so       to      /home/jolsa/libexec/perf-core/traceevent/plugins
        INSTALL  plugin_kvm.so        to      /home/jolsa/libexec/perf-core/traceevent/plugins
        INSTALL  plugin_mac80211.so   to      /home/jolsa/libexec/perf-core/traceevent/plugins
        INSTALL  plugin_sched_switch.so       to      /home/jolsa/libexec/perf-core/traceevent/plugins
        INSTALL  plugin_function.so   to      /home/jolsa/libexec/perf-core/traceevent/plugins
        INSTALL  plugin_xen.so        to      /home/jolsa/libexec/perf-core/traceevent/plugins
        INSTALL  plugin_scsi.so       to      /home/jolsa/libexec/perf-core/traceevent/plugins
      
      Now:
        INSTALL  plugin_jbd2.so
        INSTALL  plugin_hrtimer.so
        INSTALL  plugin_kmem.so
        INSTALL  plugin_kvm.so
        INSTALL  plugin_mac80211.so
        INSTALL  plugin_sched_switch.so
        INSTALL  plugin_function.so
        INSTALL  plugin_xen.so
        INSTALL  plugin_scsi.so
      Signed-off-by: NJiri Olsa <jolsa@redhat.com>
      Cc: Corey Ashford <cjashfor@linux.vnet.ibm.com>
      Cc: David Ahern <dsahern@gmail.com>
      Cc: Frederic Weisbecker <fweisbec@gmail.com>
      Cc: Ingo Molnar <mingo@elte.hu>
      Cc: Namhyung Kim <namhyung@kernel.org>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
      Cc: Steven Rostedt <rostedt@goodmis.org>
      Link: http://lkml.kernel.org/r/1386076182-14484-7-git-send-email-jolsa@redhat.comSigned-off-by: NArnaldo Carvalho de Melo <acme@redhat.com>
      f33c5cd7
    • J
      tools lib traceevent: Change pevent_parse_format to include pevent handle · 71ad9583
      Jiri Olsa 提交于
      Changing the pevent_parse_format interface to include the pevent handle.
      
      The goal is to always use pevent object when dealing with traceevent
      library. The reason is that we might need additional processing (like
      plugins), which is not possible otherwise.
      
      Patches follow to make this happen completely.
      Signed-off-by: NJiri Olsa <jolsa@redhat.com>
      Cc: Corey Ashford <cjashfor@linux.vnet.ibm.com>
      Cc: David Ahern <dsahern@gmail.com>
      Cc: Frederic Weisbecker <fweisbec@gmail.com>
      Cc: Ingo Molnar <mingo@elte.hu>
      Cc: Namhyung Kim <namhyung@kernel.org>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
      Cc: Steven Rostedt <rostedt@goodmis.org>
      Link: http://lkml.kernel.org/r/1386076182-14484-6-git-send-email-jolsa@redhat.comSigned-off-by: NArnaldo Carvalho de Melo <acme@redhat.com>
      71ad9583
    • J
      tools lib traceevent: Add traceevent_host_bigendian function · 91a058ad
      Jiri Olsa 提交于
      Adding traceevent_host_bigendian function to get host endianity. It's
      used in following patches.
      Signed-off-by: NJiri Olsa <jolsa@redhat.com>
      Cc: Corey Ashford <cjashfor@linux.vnet.ibm.com>
      Cc: David Ahern <dsahern@gmail.com>
      Cc: Frederic Weisbecker <fweisbec@gmail.com>
      Cc: Ingo Molnar <mingo@elte.hu>
      Cc: Namhyung Kim <namhyung@kernel.org>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
      Cc: Steven Rostedt <rostedt@goodmis.org>
      Link: http://lkml.kernel.org/r/1386076182-14484-5-git-send-email-jolsa@redhat.comSigned-off-by: NSteven Rostedt <rostedt@goodmis.org>
      Signed-off-by: NArnaldo Carvalho de Melo <acme@redhat.com>
      91a058ad
    • J
      tools lib traceevent: Add plugin build support · e0e96d03
      Jiri Olsa 提交于
      Backporting missing pieces of plugin building infrastructure:
      
        - Adding Makefile 'plugins' target to build all
          defined plugins
      
        - Adding Makefile 'install_plugins' target as 'install_lib'
          target dependency
      
        - Link plugin objects with shared object building
      
      Backported from Steven Rostedt's trace-cmd repo (HEAD 0f2c2fb):
      git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/trace-cmd.git
      
      Plugins are by default installed into following locations:
      
        '$(HOME)/.traceevent/plugins'
           - If we are installing under $(HOME)
      
        '$(prefix)/lib/traceevent/plugins'
           - Otherwise
      
      This path is propagated to the plugin object as a plugins search path.
      Signed-off-by: NJiri Olsa <jolsa@redhat.com>
      Cc: Corey Ashford <cjashfor@linux.vnet.ibm.com>
      Cc: David Ahern <dsahern@gmail.com>
      Cc: Frederic Weisbecker <fweisbec@gmail.com>
      Cc: Ingo Molnar <mingo@elte.hu>
      Cc: Namhyung Kim <namhyung@kernel.org>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
      Cc: Steven Rostedt <rostedt@goodmis.org>
      Link: http://lkml.kernel.org/r/1386076182-14484-4-git-send-email-jolsa@redhat.comSigned-off-by: NArnaldo Carvalho de Melo <acme@redhat.com>
      e0e96d03
    • J
      tools lib traceevent: Add plugin support · c877bbd8
      Jiri Olsa 提交于
      Backporting plugin support for traceevent lib.
      
      Backported from Steven Rostedt's trace-cmd repo (HEAD 0f2c2fb):
      git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/trace-cmd.git
      
      It's now possible to use following interface to load plugins
      (shared objects) to enhance pevent object functionality.
      
      The plugin interface/hooks are as follows:
      (taken from event-parse.h comments)
      
      - 'pevent_plugin_loader' (required)
          The function name to initialized the plugin.
      
          int pevent_plugin_loader(struct pevent *pevent)
      
      - 'pevent_plugin_unloader' (optional)
          The function called just before unloading
      
          int pevent_plugin_unloader(void)
      
      - 'pevent_plugin_options'  (optional)
          Plugin options that can be set before loading
      
          struct plugin_option pevent_plugin_options[] = {
             {
                     .name = "option-name",
                     .plugin_alias = "overide-file-name", (optional)
                     .description = "description of option to show users",
             },
             {
                     .name = NULL,
             },
          };
      
          Array must end with .name = NULL;
      
          The plugin_alias (below) can be used to give a shorter
          name to access the variable. Useful if a plugin handles
          more than one event.
      
          NOTE options support is not backported yet.
      
      - 'pevent_plugin_alias' (optional)
          The name to use for finding options (uses filename if not defined)
      
      New traceevent functions are added to search and load
      available plugins:
      
        struct plugin_list*
        traceevent_load_plugins(struct pevent *pevent)
          - loads plusing for 'struct pevent' object and returns
            loaded plugins list
      
        void traceevent_unload_plugins(struct plugin_list *plugin_list);
          - unload plugin list
      Signed-off-by: NJiri Olsa <jolsa@redhat.com>
      Cc: Corey Ashford <cjashfor@linux.vnet.ibm.com>
      Cc: David Ahern <dsahern@gmail.com>
      Cc: Frederic Weisbecker <fweisbec@gmail.com>
      Cc: Ingo Molnar <mingo@elte.hu>
      Cc: Namhyung Kim <namhyung@kernel.org>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
      Cc: Steven Rostedt <rostedt@goodmis.org>
      Link: http://lkml.kernel.org/r/1386076182-14484-3-git-send-email-jolsa@redhat.comSigned-off-by: NSteven Rostedt <rostedt@goodmis.org>
      Signed-off-by: NArnaldo Carvalho de Melo <acme@redhat.com>
      c877bbd8