1. 25 Apr, 2012 1 commit
    • Arnaldo Carvalho de Melo's avatar
      perf annotate browser: Handle NULL jump targets · 9481ede9
      Arnaldo Carvalho de Melo authored
      In annotate_browser__mark_jump_targets
      
      702                     dlt = browser->offsets[dl->ops.target];
      703                     bdlt = disasm_line__browser(dlt);
      704                     bdlt->jump_target = true;
      705             }
      706
      707     }
      
      (gdb) p size
      $5 = 2415
      (gdb) p offset
      $6 = 140
      (gdb) p dl->ops.target
      $7 = 143
      (gdb) p browser->offsets[143]
      $8 = (struct disasm_line *) 0x0
      (gdb) p dl->name
      $9 = 0x2363bd0 "je"
      (gdb)
      
      Really strange, the code assumed that at the jump target we would have
      an assembly line, but only in the previous instruction offset we have a
      'lock':
      
      (gdb) p browser->offsets[144]
      $10 = (struct disasm_line *) 0x0
      (gdb) p browser->offsets[142]
      $11 = (struct disasm_line *) 0x27bd620
      (gdb) p browser->offsets[142]->name
      $12 = 0x237a8a0 "lock"
      (gdb)
      
      I'll study this more, but for now I'll just check if there is a
      disasm_line at dl->ops.target, i.e. a valid jump target.
      Reported-by: default avatarHagen Paul Pfeifer <hagen@jauu.net>
      Reported-by: default avatarIngo Molnar <mingo@kernel.org>
      Cc: David Ahern <dsahern@gmail.com>
      Cc: Frederic Weisbecker <fweisbec@gmail.com>
      Cc: Mike Galbraith <efault@gmx.de>
      Cc: Namhyung Kim <namhyung@gmail.com>
      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-inzjrzyqhkzyv78met2vula6@git.kernel.orgSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      9481ede9
  2. 24 Apr, 2012 1 commit
    • Arnaldo Carvalho de Melo's avatar
      perf annotate browser: Initial loop detection · a3f895be
      Arnaldo Carvalho de Melo authored
      Simple algorithm, just look for the next backward jump that points to
      before the cursor.
      
      Then draw an arrow connecting the jump to its target.
      
      Do this as you move the cursor, entering/exiting possible loops.
      
      Ex (graph chars replaced to avoid mail encoding woes):
      
      avc_has_perm_flags
          0.00 |         nopl   0x0(%rax)
          5.36 |+-> 68:  mov    (%rax),%rax
          5.15 ||        test   %rax,%rax
          0.00 ||      v je     130
          2.96 ||   74:  cmp    -0x20(%rax),%ebx
         47.38 ||        lea    -0x20(%rax),%rcx
          0.28 ||      ^ jne    68
          3.16 ||        cmp    -0x18(%rax),%dx
          0.00 |+------^ jne    68
          4.92 |         cmp    0x4(%rcx),%r13d
          0.00 |       v jne    68
          1.15 |         test   %rcx,%rcx
          0.00 |       v je     130
      Suggested-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      Cc: David Ahern <dsahern@gmail.com>
      Cc: Frederic Weisbecker <fweisbec@gmail.com>
      Cc: Linus Torvalds <torvalds@linux-foundation.org>
      Cc: Mike Galbraith <efault@gmx.de>
      Cc: Namhyung Kim <namhyung@gmail.com>
      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-5gairf6or7dazlx3ocxwvftm@git.kernel.orgSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      a3f895be
  3. 20 Apr, 2012 7 commits
  4. 19 Apr, 2012 8 commits
  5. 18 Apr, 2012 2 commits
  6. 16 Apr, 2012 3 commits
  7. 13 Apr, 2012 2 commits
    • Ingo Molnar's avatar
      Merge tag 'v3.4-rc2' into perf/core · a385ec4f
      Ingo Molnar authored
      Merge Linux 3.4-rc2: we were on v3.3, update the base.
      Signed-off-by: default avatarIngo Molnar <mingo@kernel.org>
      a385ec4f
    • Ingo Molnar's avatar
      Merge tag 'perf-core-for-mingo' of... · 659c36fc
      Ingo Molnar authored
      Merge tag 'perf-core-for-mingo' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/core
      
      Fixes and improvements for perf/core:
      
      . Overhaul the tools/ makefiles, gluing them to the top level Makefile, from
        Borislav Petkov.
      
      . Move the UI files from tools/perf/util/ui/ to tools/perf/ui/. Also move
        the GTK+ browser to tools/perf/ui/gtk/, from Namhyung Kim.
      
      . Only fallback to sw cycles counter on ENOENT for the hw cycles, from
        Robert Richter
      
      . Trivial fixes from Robert Richter
      
      . Handle the autogenerated bison/flex files better, from Namhyung and Jiri Olsa.
      
      . Navigate jump instructions in the annotate browser, just press enter or ->,
        still needs support for a jump navigation history, i.e. to go back.
      
      . Search string in the annotate browser: same keys as vim:
           / forward
           n next backward/forward
           ? backward
      
      . Clarify number of events/samples in the report header, from Ashay Rane
      Signed-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      Signed-off-by: default avatarIngo Molnar <mingo@kernel.org>
      659c36fc
  8. 11 Apr, 2012 13 commits
  9. 08 Apr, 2012 1 commit
  10. 07 Apr, 2012 2 commits