1. 09 5月, 2012 14 次提交
  2. 08 5月, 2012 3 次提交
    • I
      Merge branch 'perf/annotate' of... · 149936a0
      Ingo Molnar 提交于
      Merge branch 'perf/annotate' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/core
      
      Perf annotate browser improvements:
      
       - Get back the line separating the overheads from the disassembly, requested by
         Peter Zijlstra, Linus agreed now that it is a solid line and more column real
         state was harvested. Also it has the jump->arrow lines separated from it by
         the address/jump target column.
      
       - Don't change asm line color when toggling source code view. Requested by
         Peter Zijlstra.
      
      Current snapshot:
      
       avtab_search_node
              │      push   %rbp
              │      mov    %rsp,%rbp
              │    → callq  mcount
              │      movzwl 0x6(%rsi),%edx
              │      and    $0x7fff,%dx
              │      test   %rdi,%rdi
              │    ↓ jne    20
         0.42 │17:┌─→xor    %eax,%eax
              │19:│  leaveq
         0.42 │   │← retq
              │   │  nopl   0x0(%rax,%rax,1)
              │20:│  mov    (%rdi),%rax
         0.08 │   │  test   %rax,%rax
              │   └──je     17
              │      movzwl (%rsi),%ecx
              │      movzwl 0x2(%rsi),%r9d
              │      movzwl 0x4(%rsi),%r8d
              │      movzwl %cx,%esi
              │      movzwl %r9w,%r10d
              │      shl    $0x9,%esi
              │      lea    (%rsi,%r10,4),%esi
              │      lea    (%r8,%rsi,1),%esi
              │      and    0x10(%rdi),%si
              │      movzwl %si,%esi
              │      mov    (%rax,%rsi,8),%rax
         1.01 │      test   %rax,%rax
              │    ↑ je     19
              │      nopw   0x0(%rax,%rax,1)
         3.19 │60:   cmp    %cx,(%rax)
              │    ↓ jne    7e
         0.08 │      cmp    %r9w,0x2(%rax)
              │    ↓ jne    7e
              │      cmp    %r8w,0x4(%rax)
              │    ↓ jne    79
              │      test   %dx,0x6(%rax)
              │    ↑ jne    19
              │79:   cmp    %r8w,0x4(%rax)
        83.45 │7e: ↑ ja     17
         3.36 │      mov    0x10(%rax),%rax
         7.98 │      test   %rax,%rax
              │    ↑ jne    60
              │      leaveq
              │    ← retq
      Signed-off-by: NArnaldo Carvalho de Melo <acme@redhat.com>
      Signed-off-by: NIngo Molnar <mingo@kernel.org>
      149936a0
    • A
      perf annotate browser: Compact 'nop' output · b9818e93
      Arnaldo Carvalho de Melo 提交于
      Just suppress the nop operands, future infrastructure that will record
      the instruction lenght (and its contents) in struct ins will allow
      rendering them as nopN, i.e. nop5 for a 5-byte nop.
      Suggested-by: NLinus Torvalds <torvalds@linux-foundation.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-qddbeglfzqdlal8vj2yaj67y@git.kernel.orgSigned-off-by: NArnaldo Carvalho de Melo <acme@redhat.com>
      b9818e93
    • A
      perf annotate browser: Do raw printing in 'o'ffset in a single place · 5417072b
      Arnaldo Carvalho de Melo 提交于
      Instead of doing the same in all ins scnprintf methods.
      
      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-8mfairi2n1nentoa852alazv@git.kernel.orgSigned-off-by: NArnaldo Carvalho de Melo <acme@redhat.com>
      5417072b
  3. 07 5月, 2012 1 次提交
  4. 04 5月, 2012 4 次提交
  5. 28 4月, 2012 7 次提交
  6. 27 4月, 2012 1 次提交
    • I
      Merge tag 'perf-annotate-for-mingo' of... · 1fa2e84d
      Ingo Molnar 提交于
      Merge tag 'perf-annotate-for-mingo' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/core
      
      Annotation improvements:
      
      Now the default annotate browser uses a much more compact format, implementing
      suggestions made made by several people, notably Linus.
      
      Here is part of the new __list_del_entry() annotation:
      
      __list_del_entry
          8.47 │      push   %rbp
          8.47 │      mov    (%rdi),%rdx
         20.34 │      mov    $0xdead000000100100,%rcx
          3.39 │      mov    0x8(%rdi),%rax
          0.00 │      mov    %rsp,%rbp
          1.69 │      cmp    %rcx,%rdx
          0.00 │      je     43
          1.69 │      mov    $0xdead000000200200,%rcx
          3.39 │      cmp    %rcx,%rax
          0.00 │      je     a3
          5.08 │      mov    (%rax),%r8
         18.64 │      cmp    %r8,%rdi
          0.00 │      jne    84
          1.69 │      mov    0x8(%rdx),%r8
         25.42 │      cmp    %r8,%rdi
          0.00 │      jne    65
          1.69 │      mov    %rax,0x8(%rdx)
          0.00 │      mov    %rdx,(%rax)
          0.00 │      leaveq
          0.00 │      retq
          0.00 │ 43:  mov    %rdx,%r8
          0.00 │      mov    %rdi,%rcx
          0.00 │      mov    $0xffffffff817cd6a8,%rdx
          0.00 │      mov    $0x31,%esi
          0.00 │      mov    $0xffffffff817cd6e0,%rdi
          0.00 │      xor    %eax,%eax
          0.00 │      callq  ffffffff8104eab0 <warn_slowpath_fmt>
          0.00 │      leaveq
          0.00 │      retq
          0.00 │ 65:  mov    %rdi,%rcx
          0.00 │      mov    $0xffffffff817cd780,%rdx
          0.00 │      mov    $0x3a,%esi
          0.00 │      mov    $0xffffffff817cd6e0,%rdi
          0.00 │      xor    %eax,%eax
          0.00 │      callq  ffffffff8104eab0 <warn_slowpath_fmt>
          0.00 │      leaveq
          0.00 │      retq
      
      The infrastructure is there to provide formatters for any instruction,
      like the one I'll do for call functions to elide the address.
      
      Further fixes on top of the first iteration:
      
      - Sometimes a jump points to an offset with no instructions, make the
        mark jump targets function handle that, for now just ignoring such
        jump targets, more investigation is needed to figure out how to cope
        with that.
      
      - Handle jump targets that are outside the function, for now just don't
        try to draw the connector arrow, right thing seems to be to mark this
        jump with a -> (right arrow) and handle it like a callq.
      Signed-off-by: NArnaldo Carvalho de Melo <acme@redhat.com>
      Signed-off-by: NIngo Molnar <mingo@kernel.org>
      1fa2e84d
  7. 26 4月, 2012 6 次提交
  8. 25 4月, 2012 4 次提交