1. 17 Nov, 2016 3 commits
    • Arnaldo Carvalho de Melo's avatar
      perf annotate: Add per arch instructions annotate handlers · 763d8960
      Arnaldo Carvalho de Melo authored
      Another step in supporting cross annotation.
      
      The arch specific tables are put in:
      
         tools/perf/arch/$ARCH/annotation/instructions.c
      
      which, so far, just plug instructions to a bunch of parsers/formatters,
      but may have more as the need arises.
      
      This is an alternative implementation to a previous attempt made by Ravi
      Bangoria.
      
      Cc: Adrian Hunter <adrian.hunter@intel.com>
      Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
      Cc: Chris Riyder <chris.ryder@arm.com>
      Cc: David Ahern <dsahern@gmail.com>
      Cc: Jiri Olsa <jolsa@kernel.org>
      Cc: Kim Phillips <kim.phillips@arm.com>
      Cc: Markus Trippelsdorf <markus@trippelsdorf.de>
      Cc: Masami Hiramatsu <mhiramat@kernel.org>
      Cc: Namhyung Kim <namhyung@kernel.org>
      Cc: Naveen N. Rao <naveen.n.rao@linux.vnet.ibm.com>
      Cc: Pawel Moll <pawel.moll@arm.com>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Ravi Bangoria <ravi.bangoria@linux.vnet.ibm.com>
      Cc: Russell King <rmk+kernel@arm.linux.org.uk>
      Cc: Taeung Song <treeze.taeung@gmail.com>
      Cc: Wang Nan <wangnan0@huawei.com>
      Link: http://lkml.kernel.org/n/tip-g3wt282lfa51j4qd0813e3az@git.kernel.orgSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      763d8960
    • Arnaldo Carvalho de Melo's avatar
      perf annotate: Allow arches to specify functions to skip · 9c2fb451
      Arnaldo Carvalho de Melo authored
      This is to cope with an ARM specific kludge introduced in the original
      patch supporting ARM annotation, cfef25b8 ("perf annotate: ARM
      support") that made functions with a '+' in its name to be skipped when
      processing call instructions.
      
      With this patchkit it should be possible to collect a perf.data file on
      a ARM machine and then annotate it on a x86 workstation and have those
      ARM kludges used.
      
      Cc: Adrian Hunter <adrian.hunter@intel.com>
      Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
      Cc: Chris Riyder <chris.ryder@arm.com>
      Cc: David Ahern <dsahern@gmail.com>
      Cc: Jiri Olsa <jolsa@kernel.org>
      Cc: Kim Phillips <kim.phillips@arm.com>
      Cc: Markus Trippelsdorf <markus@trippelsdorf.de>
      Cc: Masami Hiramatsu <mhiramat@kernel.org>
      Cc: Namhyung Kim <namhyung@kernel.org>
      Cc: Naveen N. Rao <naveen.n.rao@linux.vnet.ibm.com>
      Cc: Pawel Moll <pawel.moll@arm.com>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Ravi Bangoria <ravi.bangoria@linux.vnet.ibm.com>
      Cc: Russell King <rmk+kernel@arm.linux.org.uk>
      Cc: Taeung Song <treeze.taeung@gmail.com>
      Cc: Wang Nan <wangnan0@huawei.com>
      Link: http://lkml.kernel.org/n/tip-2fi3sy7q3sssdi7m7cbe07gy@git.kernel.orgSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      9c2fb451
    • Arnaldo Carvalho de Melo's avatar
      perf annotate: Start supporting cross arch annotation · 786c1b51
      Arnaldo Carvalho de Melo authored
      Introduce a 'struct arch', where arch specific stuff will live, starting
      with objdump's choice of comment delimitation character, that is '#' in
      x86 while a ';' in arm.
      
      This has some bits and pieces from a patch submitted by Ravi.
      
      Cc: Adrian Hunter <adrian.hunter@intel.com>
      Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
      Cc: Chris Riyder <chris.ryder@arm.com>
      Cc: David Ahern <dsahern@gmail.com>
      Cc: Jiri Olsa <jolsa@kernel.org>
      Cc: Kim Phillips <kim.phillips@arm.com>
      Cc: Markus Trippelsdorf <markus@trippelsdorf.de>
      Cc: Masami Hiramatsu <mhiramat@kernel.org>
      Cc: Namhyung Kim <namhyung@kernel.org>
      Cc: Naveen N. Rao <naveen.n.rao@linux.vnet.ibm.com>
      Cc: Pawel Moll <pawel.moll@arm.com>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Ravi Bangoria <ravi.bangoria@linux.vnet.ibm.com>
      Cc: Taeung Song <treeze.taeung@gmail.com>
      Cc: Wang Nan <wangnan0@huawei.com>
      Link: http://lkml.kernel.org/n/tip-f337tzjjcl8vtapgvjxmhrbx@git.kernel.orgSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      786c1b51
  2. 15 Nov, 2016 1 commit
    • Ingo Molnar's avatar
      Merge tag 'perf-core-for-mingo-20161114' of... · 6a6b12e2
      Ingo Molnar authored
      Merge tag 'perf-core-for-mingo-20161114' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/core
      
      Pull perf/core improvements and fixes from Arnaldo Carvalho de Melo:
      
      New features:
      
       - Allow querying and setting .perfconfig variables (Taeung Song)
      
       - Show branch information in callchains (predicted, TSX aborts, loop
         iteractions, etc) (Jin Yao)
      
      Infrastructure changes:
      
       - Support kbuild's CFLAGS_REMOVE_ in tools/build (Jiri Olsa)
      
       - Plug building jvmti to the main perf Makefile (Jiri Olsa)
      
      Documentation changes:
      
       - Update Intel PT documentation about context switch events (Arnaldo Carvalho de Melo)
      
       - Fix 'perf record --call-graph dwarf' help/config in builds not linking
         with a unwind library, mentioning that is a possible record option (Rabin Vincent)
      Signed-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      Signed-off-by: default avatarIngo Molnar <mingo@kernel.org>
      6a6b12e2
  3. 14 Nov, 2016 13 commits
  4. 11 Nov, 2016 1 commit
  5. 08 Nov, 2016 1 commit
  6. 28 Oct, 2016 9 commits
  7. 25 Oct, 2016 7 commits
  8. 24 Oct, 2016 5 commits
    • Ingo Molnar's avatar
      Merge tag 'perf-core-for-mingo-20161024' of... · 76e2d261
      Ingo Molnar authored
      Merge tag 'perf-core-for-mingo-20161024' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/core
      
      Pull perf/core improvements and fixes from Arnaldo Carvalho de Melo:
      
      New features:
      
      - Dynamicly change verbosity level by pressing 'V' in the 'perf top/report'
        hists TUI browser (Alexis Berlemont)
      
      - Implement 'perf trace --delay' in the same fashion as in 'perf record --delay',
        to skip sampling workload initialization events (Alexis Berlemont)
      
      - Make vendor named events case insensitive in 'perf list', i.e.
        'perf list LONGEST_LAT' works just the same as  'perf list longest_lat' (Andi Kleen)
      
      - Show instruction bytes and lenght in 'perf script' for Intel PT and BTS (Andi Kleen, Adrian Hunter)
      
         E.g:
      
          % perf record -e intel_pt// foo
          % perf script --itrace=i0ns -F ip,insn,insnlen
           ffffffff8101232f ilen: 5 insn: 0f 1f 44 00 00
           ffffffff81012334 ilen: 1 insn: 5b
           ffffffff81012335 ilen: 1 insn: 5d
           ffffffff81012336 ilen: 1 insn: c3
           ffffffff810123e3 ilen: 1 insn: 5b
           ffffffff810123e4 ilen: 2 insn: 41 5c
           ffffffff810123e6 ilen: 1 insn: 5d
           ffffffff810123e7 ilen: 1 insn: c3
           ffffffff810124a6 ilen: 2 insn: 31 c0
           ffffffff810124a8 ilen: 9 insn: 41 83 bc 24 a8 01 00 00 01
           ffffffff810124b1 ilen: 2 insn: 75 87
      
      - Allow enabling the perf_event_attr.branch_type attribute member: (Andi Kleen)
      
        perf record -e sched:sched_switch,cpu/cpu-cycles,branch_type=any/ ...
      
      - Add unwinding support for jitdump (Stefano Sanfilippo)
      
      Fixes:
      
      - Use raw_syscall:sys_enter timestamp in 'perf trace' (Arnaldo Carvalho de Melo)
      
      Infrastructure:
      
      - Allow jitdump to be built without libdwarf (Maciej Debski)
      
      - Sync x86's syscall table tools/ copy (Arnaldo Carvalho de Melo)
      
      - Fixes to avoid calling die() in library fuctions already propagating other
        errors (Arnaldo Carvalho de Melo)
      
      - Improvements to allow libtraceevent to be properly installed in distro
        packages (Jiri Olsa)
      
      - Removing coresight miscellaneous debug output (Mathieu Poirier)
      
      - Cache align the 'perf bench futex' worker struct (Sebastian Andrzej Siewior)
      
      Documentation:
      
      - Minor improvements on the documentation of event parameters (Andi Kleen)
      
      - Add jitdump format specification document (Stephane Eranian)
      
      Spelling fixes:
      
      - Fix typo "No enough" to "Not enough" (Alexander Alemayhu)
      Signed-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      Signed-off-by: default avatarIngo Molnar <mingo@kernel.org>
      76e2d261
    • Mathieu Poirier's avatar
      perf coresight: Removing miscellaneous debug output · 04b553ad
      Mathieu Poirier authored
      Printing the full path of the selected link is obviously not needed,
      hence removing.
      Signed-off-by: default avatarMathieu Poirier <mathieu.poirier@linaro.org>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: linux-arm-kernel@lists.infradead.org
      Link: http://lkml.kernel.org/r/1476913323-6836-1-git-send-email-mathieu.poirier@linaro.orgSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      04b553ad
    • Andi Kleen's avatar
      perf list: Make vendor event matching case insensitive · 38d14f0c
      Andi Kleen authored
      Make the 'perf list' glob matching for vendor events case insensitive.
      This allows to use the upper case vendor events with perf list too.
      
      Now the following works:
      
        % perf list LONGEST_LAT
      
        ...
      
        cache:
          longest_lat_cache.miss
               [Core-originated cacheable demand requests missed LLC]
          longest_lat_cache.reference
               [Core-originated cacheable demand requests that refer to LLC]
      Signed-off-by: default avatarAndi Kleen <ak@linux.intel.com>
      Suggested-by: default avatarIngo Molnar <mingo@kernel.org>
      Tested-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      Cc: Jiri Olsa <jolsa@kernel.org>
      Link: http://lkml.kernel.org/r/1476899402-31460-1-git-send-email-andi@firstfloor.orgSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      38d14f0c
    • Arnaldo Carvalho de Melo's avatar
      perf trace: Use the syscall raw_syscalls:sys_enter timestamp · ecf1e225
      Arnaldo Carvalho de Melo authored
      Instead of the one when another syscall takes place while another is being
      processed (in another CPU, but we show it serialized, so need to "interrupt"
      the other), and also when finally showing the sys_enter + sys_exit + duration,
      where we were showing the sample->time for the sys_exit, duh.
      
      Before:
      
        # perf trace sleep 1
        <SNIP>
           0.373 (   0.001 ms): close(fd: 3                   ) = 0
        1000.626 (1000.211 ms): nanosleep(rqtp: 0x7ffd6ddddfb0) = 0
        1000.653 (   0.003 ms): close(fd: 1                   ) = 0
        1000.657 (   0.002 ms): close(fd: 2                   ) = 0
        1000.667 (   0.000 ms): exit_group(                   )
        #
      
      After:
      
        # perf trace sleep 1
        <SNIP>
           0.336 (   0.001 ms): close(fd: 3                   ) = 0
           0.373 (1000.086 ms): nanosleep(rqtp: 0x7ffe303e9550) = 0
        1000.481 (   0.002 ms): close(fd: 1                   ) = 0
        1000.485 (   0.001 ms): close(fd: 2                   ) = 0
        1000.494 (   0.000 ms): exit_group(                   )
      [root@jouet linux]#
      
      Cc: Adrian Hunter <adrian.hunter@intel.com>
      Cc: David Ahern <dsahern@gmail.com>
      Cc: Jiri Olsa <jolsa@kernel.org>
      Cc: Namhyung Kim <namhyung@kernel.org>
      Cc: Wang Nan <wangnan0@huawei.com>
      Link: http://lkml.kernel.org/n/tip-ecbzgmu2ni6glc6zkw8p1zmx@git.kernel.org
      Fixes: 752fde44 ("perf trace: Support interrupted syscalls")
      Signed-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      ecf1e225
    • Arnaldo Carvalho de Melo's avatar
      perf trace: Remove thread_trace->exit_time · 1f369460
      Arnaldo Carvalho de Melo authored
      Not used at all, we need just the entry_time to calculate the syscall
      duration.
      
      Cc: Adrian Hunter <adrian.hunter@intel.com>
      Cc: David Ahern <dsahern@gmail.com>
      Cc: Jiri Olsa <jolsa@kernel.org>
      Cc: Namhyung Kim <namhyung@kernel.org>
      Cc: Wang Nan <wangnan0@huawei.com>
      Link: http://lkml.kernel.org/n/tip-js6r09zdwlzecvaei7t4l3vd@git.kernel.orgSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      1f369460