1. 26 Aug, 2013 3 commits
    • David Ahern's avatar
      perf tools: Sample after exit loses thread correlation · 236a3bbd
      David Ahern authored
      Occassionally events (e.g., context-switch, sched tracepoints) are losing
      the conversion of sample data associated with a thread. For example:
      
      $ perf record -e sched:sched_switch -c 1 -a -- sleep 5
      $ perf script
      <selected events shown>
          ls 30482 [000] 1379727.583037: sched:sched_switch: prev_comm=ls prev_pid=30482 ...
          ls 30482 [000] 1379727.586339: sched:sched_switch: prev_comm=ls prev_pid=30482 ...
      :30482 30482 [000] 1379727.589462: sched:sched_switch: prev_comm=ls prev_pid=30482 ...
      
      The last line lost the conversion from tid to comm. If you look at the events
      (perf script -D) you see why - a SAMPLE event is generated after the EXIT:
      
      0 1379727589449774 0x1540b0 [0x38]: PERF_RECORD_EXIT(30482:30482):(30482:30482)
      0 1379727589462497 0x1540e8 [0x80]: PERF_RECORD_SAMPLE(IP, 1): 30482/30482: 0xffffffff816416f1 period: 1 addr: 0
      ... thread: :30482:30482
      
      When perf processes the EXIT event the thread is moved to the dead_threads
      list. When the SAMPLE event is processed no thread exists for the pid so a new
      one is created by machine__findnew_thread.
      
      This patch address the problem by delaying the move to the dead_threads list
      until the tid is re-used (per Adrian's suggestion).
      
      With this patch we get the previous example shows:
      
        ls 30482 [000] 1379727.583037: sched:sched_switch: prev_comm=ls prev_pid=30482 ...
        ls 30482 [000] 1379727.586339: sched:sched_switch: prev_comm=ls prev_pid=30482 ...
        ls 30482 [000] 1379727.589462: sched:sched_switch: prev_comm=ls prev_pid=30482 ...
      
      and
      
        0 1379727589449774 0x1540b0 [0x38]: PERF_RECORD_EXIT(30482:30482):(30482:30482)
        0 1379727589462497 0x1540e8 [0x80]: PERF_RECORD_SAMPLE(IP, 1): 30482/30482: 0xffffffff816416f1 period: 1 addr: 0
        ... thread: ls:30482
      
      v4: per Arnaldo's request add dead flag to thread struct and set when task exits
      
      v3: re-do from a time based check to a delayed move to dead_threads list
      
      v2: Rebased to latest perf/core branch. Changed time comparison to use
          a macro which explicitly shows the time basis
      Signed-off-by: default avatarDavid Ahern <dsahern@gmail.com>
      Acked-by: default avatarAdrian Hunter <adrian.hunter@intel.com>
      Cc: Adrian Hunter <adrian.hunter@intel.com>
      Cc: Frederic Weisbecker <fweisbec@gmail.com>
      Cc: Ingo Molnar <mingo@kernel.org>
      Cc: Jiri Olsa <jolsa@redhat.com>
      Cc: Mike Galbraith <efault@gmx.de>
      Cc: Namhyung Kim <namhyung@kernel.org>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Stephane Eranian <eranian@google.com>
      Link: http://lkml.kernel.org/r/1376491767-84171-1-git-send-email-dsahern@gmail.comSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      236a3bbd
    • David Ahern's avatar
      perf trace: Make command line arguments consistent with perf-record · ac9be8ee
      David Ahern authored
      Common arguments like thread id, CPU list, mmap pages, etc should be
      consistent across perf commands.
      
      v3: Updated man page
      v2: rebased to latest core branch
      Signed-off-by: default avatarDavid Ahern <dsahern@gmail.com>
      Link: http://lkml.kernel.org/r/1377018945-21940-1-git-send-email-dsahern@gmail.comSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      ac9be8ee
    • Arnaldo Carvalho de Melo's avatar
      perf trace: Implement -o/--output filename · c24ff998
      Arnaldo Carvalho de Melo authored
      To output all 'trace' output to a filename, just like 'strace -ofile'
      
      Cc: Adrian Hunter <adrian.hunter@intel.com>
      Cc: David Ahern <dsahern@gmail.com>
      Cc: Frederic Weisbecker <fweisbec@gmail.com>
      Cc: Mike Galbraith <efault@gmx.de>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Stephane Eranian <eranian@google.com>
      Link: http://lkml.kernel.org/n/tip-6q1homkwoayhmoq64y5vhel6@git.kernel.orgSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      c24ff998
  2. 16 Aug, 2013 10 commits
  3. 15 Aug, 2013 3 commits
  4. 14 Aug, 2013 6 commits
  5. 12 Aug, 2013 18 commits