1. 28 4月, 2012 4 次提交
  2. 26 4月, 2012 2 次提交
  3. 25 4月, 2012 3 次提交
    • A
      perf annotate: Disambiguage offsets and addresses in operands · 44d1a3ed
      Arnaldo Carvalho de Melo 提交于
      We were using ins_ops->target for callq addresses and jump offsets,
      disambiguate by having ins_ops->target.addr and ins_ops->target.offset.
      
      For jumps we'll need both to fixup lines that don't have an offset on
      the <> part.
      
      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-3nlcmstua75u07ao7wja1rwx@git.kernel.orgSigned-off-by: NArnaldo Carvalho de Melo <acme@redhat.com>
      44d1a3ed
    • A
      perf annotate browser: Handle NULL jump targets · 9481ede9
      Arnaldo Carvalho de Melo 提交于
      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: NHagen Paul Pfeifer <hagen@jauu.net>
      Reported-by: NIngo 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: NArnaldo Carvalho de Melo <acme@redhat.com>
      9481ede9
    • A
      perf annotate browser: Initial loop detection · a3f895be
      Arnaldo Carvalho de Melo 提交于
      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: NLinus 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: NArnaldo Carvalho de Melo <acme@redhat.com>
      a3f895be
  4. 21 4月, 2012 7 次提交
  5. 20 4月, 2012 4 次提交
  6. 19 4月, 2012 6 次提交
  7. 16 4月, 2012 3 次提交
  8. 13 4月, 2012 2 次提交
    • I
      Merge tag 'v3.4-rc2' into perf/core · a385ec4f
      Ingo Molnar 提交于
      Merge Linux 3.4-rc2: we were on v3.3, update the base.
      Signed-off-by: NIngo Molnar <mingo@kernel.org>
      a385ec4f
    • I
      Merge tag 'perf-core-for-mingo' of... · 659c36fc
      Ingo Molnar 提交于
      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: NArnaldo Carvalho de Melo <acme@redhat.com>
      Signed-off-by: NIngo Molnar <mingo@kernel.org>
      659c36fc
  9. 12 4月, 2012 9 次提交