1. 02 8月, 2010 5 次提交
    • N
      perf, sched migration: Parameterize cpu height and spacing · 0cddf56a
      Nikhil Rao 提交于
      Without vertical zoom, it is not possible to see all CPUs in a trace
      taken on a larger machine. This patch parameterizes the height and
      spacing of CPUs so that you can fit more cpus into the screen.
      
      Ideally we should dynamically size/space the CPU rectangles with some
      minimum threshold. Until then, this patch is a stop-gap.
      Signed-off-by: NNikhil Rao <ncrao@google.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: Tom Zanussi <tzanussi@gmail.com>
      Signed-off-by: NFrederic Weisbecker <fweisbec@gmail.com>
      0cddf56a
    • N
      perf, sched migration: Fix key bindings · be6d9476
      Nikhil Rao 提交于
      EVT_KEY_DOWN and EVT_LEFT_DOWN events are not bound to the RootFrame
      event handler. As a result, zoom/scroll via keyboard events do not
      work. This patch adds the missing bindings.
      Signed-off-by: NNikhil Rao <ncrao@google.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: Tom Zanussi <tzanussi@gmail.com>
      Signed-off-by: NFrederic Weisbecker <fweisbec@gmail.com>
      be6d9476
    • F
      perf, sched migration: Ignore unhandled task states · 207f90fc
      Frederic Weisbecker 提交于
      Stop printing an error message when we don't have the letter
      for a given task state. All we need to know is if the task is
      in the TASK_RUNNING state.
      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: Nikhil Rao <ncrao@google.com>
      Cc: Tom Zanussi <tzanussi@gmail.com>
      207f90fc
    • F
      perf, sched migration: Handle ignored migrate out events · 749e5074
      Frederic Weisbecker 提交于
      Migrate out events may happen on tasks that are not in the
      runqueue, for example this is the case for tasks that are
      sleeping. In this case, we don't want to log the migrate out
      event in the source runqueue because the task is not eventually
      in the runqueue and we have already logged its sleep event.
      
      This fixes timeslices that spuriously propagate a sleep event
      from the previous timeslice.
      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: Nikhil Rao <ncrao@google.com>
      Cc: Tom Zanussi <tzanussi@gmail.com>
      749e5074
    • F
      perf: New migration tool overview · 880d22f2
      Frederic Weisbecker 提交于
      This brings a GUI tool that displays an overview of the load
      of tasks proportion in each CPUs.
      
      The CPUs forward progress is cut in timeslices. A new timeslice
      is created for every runqueue event: a task gets pushed out or
      pulled in the runqueue.
      
      For each timeslice, every CPUs rectangle is colored with a red
      power that describes the local load against the total load.
      This more red is the rectangle, the higher is the given CPU load.
      This load is the number of tasks running on the CPU, without
      any distinction against the scheduler policy of the tasks, for
      now.
      
      Also for each timeslice, the event origin is depicted on the
      CPUs that triggered it using a thin colored line on top of the
      rectangle timeslice.
      
      These events are:
      
      * sleep: a task went to sleep and has then been pulled out the
        runqueue. The origin color in the thin line is dark blue.
      
      * wake up: a task woke up and has then been pushed in the
        runqueue. The origin color is yellow.
      
      * wake up new: a new task woke up and has then been pushed in the
        runqueue. The origin color is green.
      
      * migrate in: a task migrated in the runqueue due to a load
        balancing operation. The origin color is violet.
      
      * migrate out: reverse of the previous one. Migrate in events
        usually have paired migrate out events in another runqueue.
        The origin color is light blue.
      
      Clicking on a timeslice provides the runqueue event details
      and the runqueue state.
      
      The CPU rectangles can be navigated using the usual arrow
      controls. Horizontal zooming in/out is possible with the
      "+" and "-" buttons.
      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: Li Zefan <lizf@cn.fujitsu.com>
      Cc: Steven Rostedt <rostedt@goodmis.org>
      Cc: Tom Zanussi <tzanussi@gmail.com>
      Cc: Mike Galbraith <efault@gmx.de>
      Cc: Venkatesh Pallipadi <venki@google.com>
      Cc: Pierre Tardy <tardyp@gmail.com>
      Cc: Nikhil Rao <ncrao@google.com>
      Cc: Li Zefan <lizf@cn.fujitsu.com>
      880d22f2
  2. 01 6月, 2010 1 次提交
  3. 11 5月, 2010 8 次提交
  4. 01 5月, 2010 1 次提交
  5. 14 4月, 2010 2 次提交
    • T
      perf trace/scripting: Enable scripting shell scripts for live mode · 00b21a01
      Tom Zanussi 提交于
      It should be possible to run any perf trace script in 'live
      mode'. This requires being able to pass in e.g. '-i -' or other
      args, which the current shell scripts aren't equipped to handle.
       In a few cases, there are required or optional args that also
      need special handling. This patch makes changes the current set
      of shell scripts as necessary.
      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-11-git-send-email-tzanussi@gmail.com>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      00b21a01
    • T
      perf trace/scripting: Add rwtop and sctop scripts · 47902f36
      Tom Zanussi 提交于
      A couple of scripts, one in Python and the other in Perl, that
      demonstrate 'live mode' tracing.  For each, the output of the
      perf event stream is fed continuously to the script, which
      continuously aggregates the data and reports the current results
      every 3 seconds, or at the optionally specified interval.  After
      the current results are displayed, the aggregations are cleared
      and the cycle begins anew.
      
      To run the scripts, simply pipe the output of the 'perf trace
      record' step as input to the corresponding 'perf trace report'
      step, using '-' as the filename to -o and -i:
      
       $ perf trace record sctop -o - | perf trace report sctop -i -
      
      Also adds clear_term() utility functions to the Util.pm and
      Util.py utility modules, for use by any script to clear the
      screen.
      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-10-git-send-email-tzanussi@gmail.com>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      47902f36
  6. 25 2月, 2010 2 次提交
    • T
      perf/scripts: Add syscall tracing scripts · 4d161f03
      Tom Zanussi 提交于
      Adds a set of scripts that aggregate system call totals and system
      call errors.  Most are Python scripts that also test basic
      functionality of the new Python engine, but there's also one Perl
      script added for comparison and for reference in some new
      Documentation contained in a later patch.
      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-8-git-send-email-tzanussi@gmail.com>
      Signed-off-by: NFrederic Weisbecker <fweisbec@gmail.com>
      4d161f03
    • T
      perf/scripts: Add Python scripting engine · 7e4b21b8
      Tom Zanussi 提交于
      Add base support for Python scripting to perf trace.
      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-6-git-send-email-tzanussi@gmail.com>
      Signed-off-by: NFrederic Weisbecker <fweisbec@gmail.com>
      7e4b21b8
  7. 24 2月, 2010 3 次提交
    • T
      perf/scripts: Remove check-perf-trace from listed scripts · 266fe2f2
      Tom Zanussi 提交于
      The check-perf-trace script only checks Perl functionality, and
      doesn't really need to be listed as as user script anyway.
      
      This only removes the '-report' shell script, so although it doesn't
      appear in the listing, the '-record' shell script and the check perf
      trace perl script itself is still available and can still be run
      manually as such:
      
      $ libexec/perf-core/scripts/perl/bin/check-perf-trace-record
      $ perf trace -s libexec/perf-core/scripts/perl/check-perf-trace.pl
      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-6-git-send-email-tzanussi@gmail.com>
      Signed-off-by: NFrederic Weisbecker <fweisbec@gmail.com>
      266fe2f2
    • T
      perf/scripts: Move common code out of Perl-specific files · 7397d80d
      Tom Zanussi 提交于
      This stuff is needed by all scripting engines; move it from the Perl
      engine source to a more common place.
      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-4-git-send-email-tzanussi@gmail.com>
      Signed-off-by: NFrederic Weisbecker <fweisbec@gmail.com>
      7397d80d
    • T
      perf/scripts: Fix bug in Util.pm · e26207a3
      Tom Zanussi 提交于
      Fix bogus calculation.
      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-3-git-send-email-tzanussi@gmail.com>
      Signed-off-by: NFrederic Weisbecker <fweisbec@gmail.com>
      e26207a3
  8. 15 12月, 2009 2 次提交
    • 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
  9. 30 11月, 2009 2 次提交
  10. 28 11月, 2009 3 次提交
    • T
      perf trace: Add a scripts/perl/bin for perf trace shell scripts · 1ae4a971
      Tom Zanussi 提交于
      To capture the relevant events for a given Perl script and to
      avoid having to continually remember and type in long
      command-lines, add a scripts/perl/bin directory containing two
      simple shell scripts for each Perl script, one for recording and
      one for processing/display. For example, to record perf data for
      the rw-by-pid.pl script, run scripts/perl/bin/rw-by-pid-record
      and to actually run the script and display the output run
      scripts/perl/bin/rw-by-pid-report.
      Signed-off-by: NTom Zanussi <tzanussi@gmail.com>
      Cc: fweisbec@gmail.com
      Cc: rostedt@goodmis.org
      Cc: anton@samba.org
      Cc: hch@infradead.org
      LKML-Reference: <1259133352-23685-8-git-send-email-tzanussi@gmail.com>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      1ae4a971
    • T
      perf trace: Add interface to access perf data from Perl handlers · d1b93772
      Tom Zanussi 提交于
      The Perl scripting support for perf trace allows most of a trace
      event's data to be accessed directly as handler arguments, but
      not all of it e.g. the less common fields aren't passed in.  To
      give scripts access to the other fields and/or any other data or
      metadata in the main perf executable that might be useful, a way
      to access the C data in perf from Perl is needed; this patch
      uses the Perl XS facility to do it for the common_xxx event
      fields not passed to handler functions.
      
      Context.pm exports three functions to Perl scripts that access
      fields for the current event by calling back into perf:
      common_pc(), common_flags() and common_lock_depth().  Support
      for common_flags() field values was added to Core.pm and a
      script used to sanity check these and other basic scripting
      features, check-perf-trace.pl, was also added.
      Signed-off-by: NTom Zanussi <tzanussi@gmail.com>
      Cc: fweisbec@gmail.com
      Cc: rostedt@goodmis.org
      Cc: anton@samba.org
      Cc: hch@infradead.org
      LKML-Reference: <1259133352-23685-6-git-send-email-tzanussi@gmail.com>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      d1b93772
    • T
      perf trace: Add perf trace scripting support modules for Perl · bcefe12e
      Tom Zanussi 提交于
      Add Perf-Trace-Util Perl module and some scripts that use it.
      Core.pm contains Perl code to define and access flag and
      symbolic fields. Util.pm contains general-purpose utility
      functions.
      
      Also adds some makefile bits to install them in
      libexec/perf-core/scripts/perl (or wherever perfexec_instdir
      points).
      Signed-off-by: NTom Zanussi <tzanussi@gmail.com>
      Cc: fweisbec@gmail.com
      Cc: rostedt@goodmis.org
      Cc: anton@samba.org
      Cc: hch@infradead.org
      LKML-Reference: <1259133352-23685-5-git-send-email-tzanussi@gmail.com>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      bcefe12e