1. 17 11月, 2010 1 次提交
  2. 10 11月, 2010 4 次提交
    • T
      perf trace: update usage · 7e55055e
      Tom Zanussi 提交于
      Update usage to reflect the different perf trace variants.
      Signed-off-by: NTom Zanussi <tom.zanussi@linux.intel.com>
      Acked-by: NArnaldo Carvalho de Melo <acme@ghostprotocols.net>
      7e55055e
    • T
      perf trace: live-mode command-line cleanup · b5b87312
      Tom Zanussi 提交于
      This patch attempts to make the perf trace command-line for live-mode
      commands more user-friendly and consistent with other perf commands.
      
      The main change it makes is to allow <commands> to be run as part of
      perf trace live-mode commands, as other perf commands do, instead of
      the system-wide traces they're currently hard-coded to by the shell
      scripts.
      
      With this patch, the following live-mode trace now works as expected:
      
       $ perf trace rw-by-pid ls -al
      
      The previous system-wide behavior for this command would still be
      available by explicitly specifying -a:
      
       $ perf trace rw-by-pid -a ls -al
      
      and if no <command> is specified, the output is also system-wide:
      
       $ perf trace rw-by-pid
      
      Because live-mode requires both record and report steps to be invoked,
      it isn't always possible to know which args to send to the report and
      which to send to the record steps - mainly this is the case for report
      scripts with optional args - in those cases it would be necessary to
      use separate 'perf trace record' and 'perf trace report' steps.
      
      For example:
      
       $ perf trace syscall-counts ls
      
      Here we can't decide whether ls should be passed as a param to the
      syscall-counts script or whether we should invoke ls as a <command>.
      In these cases, we just say that we'll ignore optional script params
      and always interpret the extra arguments as a <command>.
      
      If the user instead wants the other interpretation, that can be
      accomplished by using separate record and report commands explicitly:
      
       $ perf trace record syscall-counts
       $ perf trace report syscall-counts ls
      
      So the rules that this patch implements, which seem to make the most
      intuitive sense for live-mode commands:
      
      - for commands with optional args and commands with no args, no args
        are sent to the report script, all are sent to the record step
      
      - for 'top' commands i.e. that end with 'top', <commands> can't be
        used - all extra args are send to the report script as params
      
      - for commands with required args, the n required args are taken to be
        the first n args after the script name and sent to the report
        script, and the rest are sent to the record step
      Signed-off-by: NTom Zanussi <tom.zanussi@linux.intel.com>
      Acked-by: NArnaldo Carvalho de Melo <acme@ghostprotocols.net>
      b5b87312
    • T
      perf trace record: handle commands correctly · 34c86ea9
      Tom Zanussi 提交于
      Because the perf-trace shell scripts hard-coded the use of the
      perf-record system-wide param, a perf trace record session was always
      system wide, even if it was given a command.
      
      If given a command, perf trace record now only records the events for
      the command, as users expect.
      
      If no command is given, or if the '-a' option is used, the recorded
      events are system-wide, as before.
      
      root@tropicana:~# perf trace record syscall-counts ls -al
      root@tropicana:~# perf trace
                    ls-23152 [000] 39984.890387: sys_enter: NR 12 (0, 0, 0, 0, 0, 0)
                    ls-23152 [000] 39984.890404: sys_enter: NR 9 (0, 0, 0, 0, 0, 0)
      
      root@tropicana:~# perf trace record syscall-counts -a ls -al
      root@tropicana:~# perf trace
          npviewer.bin-22297 [000] 39831.102709: sys_enter: NR 168 (0, 0, 0, 0, 0, 0)
                    ls-23111 [000] 39831.107679: sys_enter: NR 59 (0, 0, 0, 0, 0, 0)
      Signed-off-by: NTom Zanussi <tom.zanussi@linux.intel.com>
      Acked-by: NArnaldo Carvalho de Melo <acme@ghostprotocols.net>
      34c86ea9
    • T
      perf trace scripting: fix some small memory leaks and missing error checks · e8719adf
      Tom Zanussi 提交于
      Free the other two fields of script_desc which somehow got overlooked,
      free malloc'ed args in case exec fails, and add missing checks for
      failed mallocs.
      Signed-off-by: NTom Zanussi <tom.zanussi@linux.intel.com>
      Acked-by: NArnaldo Carvalho de Melo <acme@ghostprotocols.net>
      e8719adf
  3. 27 10月, 2010 1 次提交
  4. 24 10月, 2010 2 次提交
  5. 06 8月, 2010 1 次提交
    • A
      perf trace: Clean up #includes · b7eead86
      Andrea Gelmini 提交于
      Removed duplicated #includes util/trace-event.h and
      util/exec_cmd.h.
      Grouped and sorted all the #includes.
      
      Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Ingo Molnar <mingo@elte.hu>
      Cc: Tom Zanussi <tzanussi@gmail.com>
      Cc: Frederic Weisbecker <fweisbec@gmail.com>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      LKML-Reference: <1281016299-23958-14-git-send-email-andrea.gelmini@gelma.net>
      Signed-off-by: NAndrea Gelmini <andrea.gelmini@gelma.net>
      Signed-off-by: NArnaldo Carvalho de Melo <acme@redhat.com>
      b7eead86
  6. 25 6月, 2010 2 次提交
    • F
      perf: Report lost events in perf trace debug mode · ffabd99e
      Frederic Weisbecker 提交于
      Account and report lost events in perf trace debugging mode,
      useful to check the reliability of the traces.
      Signed-off-by: NFrederic Weisbecker <fweisbec@gmail.com>
      Cc: Ingo Molnar <mingo@elte.hu>
      Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
      Cc: Arnaldo Carvalho de Melo <acme@redhat.com>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Masami Hiramatsu <mhiramat@redhat.com>
      Cc: Tom Zanussi <tzanussi@gmail.com>
      ffabd99e
    • F
      perf: Don't print traces when debugging ordering · 6fcf7ddb
      Frederic Weisbecker 提交于
      Errors due to ordering bugs are easily lost in the middle
      of traces.
      
      When we are in this mode, don't print the traces so that
      we don't miss the debugging messages.
      But display a comforting message if we didn't encounter any
      ordering problem.
      Signed-off-by: NFrederic Weisbecker <fweisbec@gmail.com>
      Cc: Ingo Molnar <mingo@elte.hu>
      Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
      Cc: Arnaldo Carvalho de Melo <acme@redhat.com>
      Cc: Paul Mackerras <paulus@samba.org>
      6fcf7ddb
  7. 15 5月, 2010 1 次提交
    • A
      perf hist: Clarify events_stats fields usage · cee75ac7
      Arnaldo Carvalho de Melo 提交于
      The events_stats.total field is too generic, rename it to .total_period,
      and also add a comment explaining that it is the sum of all the .period
      fields in samples, that is needed because we use auto-freq to avoid
      sampling artifacts.
      
      Ditto for events_stats.lost, that is the sum of all lost_event.lost
      fields, i.e. the number of events the kernel dropped.
      
      Looking at the users, builtin-sched.c can make use of these fields and
      stop doing it again.
      
      Cc: Frédéric Weisbecker <fweisbec@gmail.com>
      Cc: Mike Galbraith <efault@gmx.de>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
      Cc: Tom Zanussi <tzanussi@gmail.com>
      LKML-Reference: <new-submission>
      Signed-off-by: NArnaldo Carvalho de Melo <acme@redhat.com>
      cee75ac7
  8. 11 5月, 2010 2 次提交
    • T
      perf/trace/scripting: don't show script start/stop messages by default · 3824a4e8
      Tom Zanussi 提交于
      Only print the script start/stop messages in verbose mode - users
      normally don't care and it just clutters up the output.
      
      Cc: Frédéric Weisbecker <fweisbec@gmail.com>
      Cc: Ingo Molnar <mingo@elte.hu>
      LKML-Reference: <1273466820-9330-7-git-send-email-tzanussi@gmail.com>
      Signed-off-by: NTom Zanussi <tzanussi@gmail.com>
      Signed-off-by: NArnaldo Carvalho de Melo <acme@redhat.com>
      3824a4e8
    • A
      perf hist: Introduce hists class and move lots of methods to it · 1c02c4d2
      Arnaldo Carvalho de Melo 提交于
      In cbbc79a5 we introduced support for multiple events by introducing a
      new "event_stat_id" struct and then made several perf_session methods
      receive a point to it instead of a pointer to perf_session, and kept the
      event_stats and hists rb_tree in perf_session.
      
      While working on the new newt based browser, I realised that it would be
      better to introduce a new class, "hists" (short for "histograms"),
      renaming the "event_stat_id" struct and the perf_session methods that
      were really "hists" methods, as they manipulate only struct hists
      members, not touching anything in the other perf_session members.
      
      Other optimizations, such as calculating the maximum lenght of a symbol
      name present in an hists instance will be possible as we add them,
      avoiding a re-traversal just for finding that information.
      
      The rationale for the name "hists" to replace "event_stat_id" is that we
      may have multiple sets of hists for the same event_stat id, as, for
      instance, the 'perf diff' tool has, so event stat id is not what
      characterizes what this struct and the functions that manipulate it do.
      
      Cc: Eric B Munson <ebmunson@us.ibm.com>
      Cc: Frédéric Weisbecker <fweisbec@gmail.com>
      Cc: Mike Galbraith <efault@gmx.de>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
      Cc: Tom Zanussi <tzanussi@gmail.com>
      LKML-Reference: <new-submission>
      Signed-off-by: NArnaldo Carvalho de Melo <acme@redhat.com>
      1c02c4d2
  9. 03 5月, 2010 1 次提交
    • T
      perf: add perf-inject builtin · 454c407e
      Tom Zanussi 提交于
      Currently, perf 'live mode' writes build-ids at the end of the
      session, which isn't actually useful for processing live mode events.
      
      What would be better would be to have the build-ids sent before any of
      the samples that reference them, which can be done by processing the
      event stream and retrieving the build-ids on the first hit.  Doing
      that in perf-record itself, however, is off-limits.
      
      This patch introduces perf-inject, which does the same job while
      leaving perf-record untouched.  Normal mode perf still records the
      build-ids at the end of the session as it should, but for live mode,
      perf-inject can be injected in between the record and report steps
      e.g.:
      
      perf record -o - ./hackbench 10 | perf inject -v -b | perf report -v -i -
      
      perf-inject reads a perf-record event stream and repipes it to stdout.
      At any point the processing code can inject other events into the
      event stream - in this case build-ids (-b option) are read and
      injected as needed into the event stream.
      
      Build-ids are just the first user of perf-inject - potentially
      anything that needs userspace processing to augment the trace stream
      with additional information could make use of this facility.
      
      Cc: Ingo Molnar <mingo@elte.hu>
      Cc: Steven Rostedt <rostedt@goodmis.org>
      Cc: Frédéric Weisbecker <fweisbec@gmail.com>
      LKML-Reference: <1272696080-16435-3-git-send-email-tzanussi@gmail.com>
      Signed-off-by: NTom Zanussi <tzanussi@gmail.com>
      Signed-off-by: NArnaldo Carvalho de Melo <acme@redhat.com>
      454c407e
  10. 24 4月, 2010 2 次提交
    • F
      perf: Add a perf trace option to check samples ordering reliability · e1889d75
      Frederic Weisbecker 提交于
      To ensure sample events time reordering is reliable, add a -d option
      to perf trace to check that automatically.
      Signed-off-by: NFrederic Weisbecker <fweisbec@gmail.com>
      Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
      Cc: Arnaldo Carvalho de Melo <acme@redhat.com>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Hitoshi Mitake <mitake@dcl.info.waseda.ac.jp>
      Cc: Ingo Molnar <mingo@elte.hu>
      Cc: Masami Hiramatsu <mhiramat@redhat.com>
      Cc: Tom Zanussi <tzanussi@gmail.com>
      e1889d75
    • F
      perf: Use generic sample reordering in perf trace · e0a808c6
      Frederic Weisbecker 提交于
      Use the new generic sample events reordering from perf trace.
      Before that, the displayed traces were ordered as they were
      in the input as recorded by perf record (not time ordered).
      
      This makes eventually perf trace displaying the events as beeing
      time ordered.
      Signed-off-by: NFrederic Weisbecker <fweisbec@gmail.com>
      Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
      Cc: Arnaldo Carvalho de Melo <acme@redhat.com>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Hitoshi Mitake <mitake@dcl.info.waseda.ac.jp>
      Cc: Ingo Molnar <mingo@elte.hu>
      Cc: Masami Hiramatsu <mhiramat@redhat.com>
      Cc: Tom Zanussi <tzanussi@gmail.com>
      e0a808c6
  11. 14 4月, 2010 7 次提交
    • T
      perf trace: Invoke live mode automatically if record/report not specified · a0cccc2e
      Tom Zanussi 提交于
      Currently, live mode is invoked by explicitly invoking the
      record and report sides and connecting them with a pipe e.g.
      
       $ perf trace record rwtop -o - | perf trace report rwtop 5 -i -
      
      In terms of usability, it's not that bad, but it does require
      the user to type and remember more than necessary.
      
      This patch allows the user to accomplish the same thing without
      specifying the separate record/report steps or the pipe.  So the
      same command as above can be accomplished more simply as:
      
       $ perf trace rwtop 5
      
      Notice that the '-i -' and '-o -' aren't required in this case -
      they're added internally, and that any extra arguments are
      passed along to the report script (but not to the record
      script).
      
      The overall effect is that any of the scripts listed in 'perf
      trace -l' can now be used directly in live mode, with the
      expected arguments, by simply specifying the script and args to
      'perf trace'.
      Signed-off-by: NTom Zanussi <tzanussi@gmail.com>
      Acked-by: NThomas Gleixner <tglx@linutronix.de>
      Cc: fweisbec@gmail.com
      Cc: rostedt@goodmis.org
      Cc: k-keiichi@bx.jp.nec.com
      Cc: acme@ghostprotocols.net
      LKML-Reference: <1270184365-8281-12-git-send-email-tzanussi@gmail.com>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      a0cccc2e
    • T
      perf: Convert perf header build_ids into build_id events · c7929e47
      Tom Zanussi 提交于
      Bypasses the build_id perf header code and replaces it with a
      synthesized event and processing function that accomplishes the
      same thing, used when reading/writing perf data to/from a pipe.
      Signed-off-by: NTom Zanussi <tzanussi@gmail.com>
      Acked-by: NThomas Gleixner <tglx@linutronix.de>
      Cc: fweisbec@gmail.com
      Cc: rostedt@goodmis.org
      Cc: k-keiichi@bx.jp.nec.com
      Cc: acme@ghostprotocols.net
      LKML-Reference: <1270184365-8281-9-git-send-email-tzanussi@gmail.com>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      c7929e47
    • T
      perf: Convert perf tracing data into a tracing_data event · 9215545e
      Tom Zanussi 提交于
      Bypasses the tracing_data perf header code and replaces it with
      a synthesized event and processing function that accomplishes
      the same thing, used when reading/writing perf data to/from a
      pipe.
      
      The tracing data is pretty large, and this patch doesn't attempt
      to break it down into component events.  The tracing_data event
      itself doesn't actually contain the tracing data, rather it
      arranges for the event processing code to skip over it after
      it's read, using the skip return value added to the event
      processing loop in a previous patch.
      Signed-off-by: NTom Zanussi <tzanussi@gmail.com>
      Acked-by: NThomas Gleixner <tglx@linutronix.de>
      Cc: fweisbec@gmail.com
      Cc: rostedt@goodmis.org
      Cc: k-keiichi@bx.jp.nec.com
      Cc: acme@ghostprotocols.net
      LKML-Reference: <1270184365-8281-8-git-send-email-tzanussi@gmail.com>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      9215545e
    • T
      perf: Convert perf event types into event type events · cd19a035
      Tom Zanussi 提交于
      Bypasses the event type perf header code and replaces it with a
      synthesized event and processing function that accomplishes the
      same thing, used when reading/writing perf data to/from a pipe.
      Signed-off-by: NTom Zanussi <tzanussi@gmail.com>
      Acked-by: NThomas Gleixner <tglx@linutronix.de>
      Cc: fweisbec@gmail.com
      Cc: rostedt@goodmis.org
      Cc: k-keiichi@bx.jp.nec.com
      Cc: acme@ghostprotocols.net
      LKML-Reference: <1270184365-8281-7-git-send-email-tzanussi@gmail.com>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      cd19a035
    • T
      perf: Convert perf header attrs into attr events · 2c46dbb5
      Tom Zanussi 提交于
      Bypasses the attr perf header code and replaces it with a
      synthesized event and processing function that accomplishes the
      same thing, used when reading/writing perf data to/from a pipe.
      
      Making the attrs into events allows them to be streamed over a
      pipe along with the rest of the header data (in later patches).
      It also paves the way to allowing events to be added and removed
      from perf sessions dynamically.
      Signed-off-by: NTom Zanussi <tzanussi@gmail.com>
      Acked-by: NThomas Gleixner <tglx@linutronix.de>
      Cc: fweisbec@gmail.com
      Cc: rostedt@goodmis.org
      Cc: k-keiichi@bx.jp.nec.com
      Cc: acme@ghostprotocols.net
      LKML-Reference: <1270184365-8281-6-git-send-email-tzanussi@gmail.com>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      2c46dbb5
    • T
      perf trace: Introduce special handling for pipe input · c239da3b
      Tom Zanussi 提交于
      Adds special treatment for stdin - if the user specifies '-i -'
      to perf trace, the intent is that the event stream be read from
      stdin rather than from a disk file.
      
      The actual handling of the '-' filename is done by the session;
      this just adds a signal handler to stop reporting, and turns off
      interference by the pager.
      Signed-off-by: NTom Zanussi <tzanussi@gmail.com>
      Acked-by: NThomas Gleixner <tglx@linutronix.de>
      Cc: fweisbec@gmail.com
      Cc: rostedt@goodmis.org
      Cc: k-keiichi@bx.jp.nec.com
      Cc: acme@ghostprotocols.net
      LKML-Reference: <1270184365-8281-5-git-send-email-tzanussi@gmail.com>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      c239da3b
    • I
      perf: Fix endianness argument compatibility with OPT_BOOLEAN() and introduce OPT_INCR() · c0555642
      Ian Munsie 提交于
      Parsing an option from the command line with OPT_BOOLEAN on a
      bool data type would not work on a big-endian machine due to the
      manner in which the boolean was being cast into an int and
      incremented. For example, running 'perf probe --list' on a
      PowerPC machine would fail to properly set the list_events bool
      and would therefore print out the usage information and
      terminate.
      
      This patch makes OPT_BOOLEAN work as expected with a bool
      datatype. For cases where the original OPT_BOOLEAN was
      intentionally being used to increment an int each time it was
      passed in on the command line, this patch introduces OPT_INCR
      with the old behaviour of OPT_BOOLEAN (the verbose variable is
      currently the only such example of this).
      
      I have reviewed every use of OPT_BOOLEAN to verify that a true
      C99 bool was passed. Where integers were used, I verified that
      they were only being used for boolean logic and changed them to
      bools to ensure that they would not be mistakenly used as ints.
      The major exception was the verbose variable which now uses
      OPT_INCR instead of OPT_BOOLEAN.
      Signed-off-by: NIan Munsie <imunsie@au.ibm.com>
      Acked-by: NDavid S. Miller <davem@davemloft.net>
      Cc: <stable@kernel.org> # NOTE: wont apply to .3[34].x cleanly, please backport
      Cc: Git development list <git@vger.kernel.org>
      Cc: Ian Munsie <imunsie@au1.ibm.com>
      Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Arnaldo Carvalho de Melo <acme@redhat.com>
      Cc: KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>
      Cc: Hitoshi Mitake <mitake@dcl.info.waseda.ac.jp>
      Cc: Rusty Russell <rusty@rustcorp.com.au>
      Cc: Frederic Weisbecker <fweisbec@gmail.com>
      Cc: Eric B Munson <ebmunson@us.ibm.com>
      Cc: Valdis.Kletnieks@vt.edu
      Cc: WANG Cong <amwang@redhat.com>
      Cc: Thiago Farina <tfransosi@gmail.com>
      Cc: Masami Hiramatsu <mhiramat@redhat.com>
      Cc: Xiao Guangrong <xiaoguangrong@cn.fujitsu.com>
      Cc: Jaswinder Singh Rajput <jaswinderrajput@gmail.com>
      Cc: Arjan van de Ven <arjan@linux.intel.com>
      Cc: OGAWA Hirofumi <hirofumi@mail.parknet.co.jp>
      Cc: Mike Galbraith <efault@gmx.de>
      Cc: Tom Zanussi <tzanussi@gmail.com>
      Cc: Anton Blanchard <anton@samba.org>
      Cc: John Kacur <jkacur@redhat.com>
      Cc: Li Zefan <lizf@cn.fujitsu.com>
      Cc: Steven Rostedt <rostedt@goodmis.org>
      LKML-Reference: <1271147857-11604-1-git-send-email-imunsie@au.ibm.com>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      c0555642
  12. 04 3月, 2010 2 次提交
  13. 25 2月, 2010 1 次提交
  14. 24 2月, 2010 1 次提交
    • T
      perf/scripts: Fix supported language listing option · f526d68b
      Tom Zanussi 提交于
      'perf trace -s list' prints a list of the supported scripting
      languages.  One problem with it is that it falls through and prints
      the trace as well.  The use of 'list' for this also makes it easy to
      confuse with 'perf trace -l', used for listing available scripts.  So
      change 'perf trace -s list' to 'perf trace -s lang' and fixes the
      fall-through problem.
      Signed-off-by: NTom Zanussi <tzanussi@gmail.com>
      Cc: Ingo Molnar <mingo@elte.hu>
      Cc: Steven Rostedt <rostedt@goodmis.org>
      Cc: Keiichi KII <k-keiichi@bx.jp.nec.com>
      Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Arnaldo Carvalho de Melo <acme@redhat.com>
      LKML-Reference: <1264580883-15324-2-git-send-email-tzanussi@gmail.com>
      Signed-off-by: NFrederic Weisbecker <fweisbec@gmail.com>
      f526d68b
  15. 27 1月, 2010 1 次提交
  16. 16 1月, 2010 1 次提交
  17. 28 12月, 2009 3 次提交
  18. 19 12月, 2009 1 次提交
    • A
      perf diff: Fix usage array, it must end with a NULL entry · 0422a4fc
      Arnaldo Carvalho de Melo 提交于
      Fixing this:
      
       [acme@doppio linux-2.6-tip]$ perf diff --hell
         Error: unknown option `hell'
      
        usage: perf diff [<options>] [old_file] [new_file]
       Segmentation fault
       [acme@doppio linux-2.6-tip]$
      
      Also go over the other such arrays to check if they all were OK,
      they are, but there were some minor changes to do like making
      one static and renaming another to match the command it refers
      to.
      Signed-off-by: NArnaldo Carvalho de Melo <acme@redhat.com>
      Cc: Frederic Weisbecker <fweisbec@gmail.com>
      Cc: Mike Galbraith <efault@gmx.de>
      Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
      Cc: Paul Mackerras <paulus@samba.org>
      LKML-Reference: <1261161358-23959-1-git-send-email-acme@infradead.org>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      0422a4fc
  19. 16 12月, 2009 2 次提交
  20. 15 12月, 2009 4 次提交
    • T
      perf trace/scripting: Add 'record' and 'report' options · 3875294f
      Tom Zanussi 提交于
      Allow scripts to be recorded/executed by simply specifying the
      script root name (the script name minus extension) along with
      'record' or 'report' to 'perf trace'.
      
      The script names shown by 'perf trace -l' can be directly used
      to run the command-line contained within the corresponding
      '-record' and '-report' versions of scripts in the scripts/*/bin
      directories.
      
      For example, to record the trace data needed to run the
      wakeup-latency.pl script, the user can easily find the name of
      the corresponding script from the script list and invoke it
      using 'perf trace record', without having to remember the
      details of how to do the same thing using the lower-level perf
      trace command-line options:
      
      root@tropicana:~# perf trace -l
      List of available trace scripts:
        workqueue-stats                      workqueue stats (ins/exe/create/destroy)
        wakeup-latency                       system-wide min/max/avg wakeup latency
        rw-by-file <comm>                    r/w activity for a program, by file
        check-perf-trace                     useless but exhaustive test script
        rw-by-pid                            system-wide r/w activity
      
      root@tropicana:~# perf trace record wakeup-latency
      ^C[ perf record: Woken up 1 times to write data ]
      [ perf record: Captured and wrote 0.296 MB perf.data (~12931
      samples) ]
      
      To run the wakeup-latency.pl script using the captured data,
      change 'record' to 'report' in the command-line:
      
      root@tropicana:~# perf trace report wakeup-latency
      
      wakeup_latency stats:
      
      total_wakeups: 65
      avg_wakeup_latency (ns): 22417
      min_wakeup_latency (ns): 3470
      max_wakeup_latency (ns): 223311
      
      perf trace Perl script stopped
      
      If the script takes options, thay can be simply added to the end
      of the 'report' invocation:
      
      root@tropicana:~# perf trace record rw-by-file
      ^C[ perf record: Woken up 2 times to write data ]
      [ perf record: Captured and wrote 0.782 MB perf.data (~34171
      samples) ]
      
      root@tropicana:~# perf trace report rw-by-file perf
      
      file read counts for perf:
      
          fd     # reads  bytes_requested
      ------  ----------  -----------
         122        1934     1980416
         120           1          32
      
      file write counts for perf:
      
          fd    # writes  bytes_written
      ------  ----------  -----------
           3        4006      280568
      
      perf trace Perl script stopped
      Signed-off-by: NTom Zanussi <tzanussi@gmail.com>
      Cc: fweisbec@gmail.com
      Cc: rostedt@goodmis.org
      LKML-Reference: <1260867220-15699-6-git-send-email-tzanussi@gmail.com>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      3875294f
    • T
      perf trace/scripting: List available scripts · 4b9c0c59
      Tom Zanussi 提交于
      Lists the available perf trace scripts, one per line e.g.:
      
      root@tropicana:~# perf trace -l
      List of available trace scripts:
        workqueue-stats                      workqueue stats (ins/exe/create/destroy)
        wakeup-latency                       system-wide min/max/avg wakeup latency
        rw-by-file <comm>                    r/w activity for a program, by file
        check-perf-trace                     useless but exhaustive test script
        rw-by-pid                            system-wide r/w activity
      
      To be consistent with the other listing options in perf, the
      current latency trace option was changed to '-L', and '-l' is
      now used to access the script listing as:
      
      To create the list, it searches each scripts/*/bin directory for
      files ending with "-report" and reads information found in
      certain comment lines contained in those shell scripts:
      
        - if the comment line starts with "description:", the rest of the
          line is used as a 'half-line' description.  To keep each line in
          the list to a single line, the description should be limited to 40
          characters (the rest of the line contains the script name and
          args)
      
        - if the comment line starts with "args:", the rest of the line
          names the args the script supports.  Required args should be
          surrounded by <> brackets, optional args by [] brackets.
      
      The current scripts in scripts/perl/bin have also been updated
      with description: and args: comments.
      Signed-off-by: NTom Zanussi <tzanussi@gmail.com>
      Cc: fweisbec@gmail.com
      Cc: rostedt@goodmis.org
      LKML-Reference: <1260867220-15699-5-git-send-email-tzanussi@gmail.com>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      4b9c0c59
    • T
      perf trace/scripting: Add support for script args · 586bc5cc
      Tom Zanussi 提交于
      One oversight of the original scripting_ops patch was a lack of
      support for passing args to handler scripts.  This adds
      argc/argv to the start_script() scripting_op, and changes the
      rw-by-file script to take 'comm' arg rather than the 'perf'
      value currently hard-coded.  It also takes the opportunity to do
      some related minor cleanup.
      Signed-off-by: NTom Zanussi <tzanussi@gmail.com>
      Cc: fweisbec@gmail.com
      Cc: rostedt@goodmis.org
      LKML-Reference: <1260867220-15699-2-git-send-email-tzanussi@gmail.com>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      586bc5cc
    • A
      perf session: Event statistics also are per session · f823e441
      Arnaldo Carvalho de Melo 提交于
      Signed-off-by: NArnaldo Carvalho de Melo <acme@redhat.com>
      Cc: Frédéric Weisbecker <fweisbec@gmail.com>
      Cc: Mike Galbraith <efault@gmx.de>
      Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
      Cc: Paul Mackerras <paulus@samba.org>
      LKML-Reference: <1260810361-22828-1-git-send-email-acme@infradead.org>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      f823e441