• A
    perf annotate: Calculate the max instruction name, align column to that · bc3bb795
    Arnaldo Carvalho de Melo 提交于
    We were hardcoding '6' as the max instruction name, and we have lots
    that are longer than that, see the diff from two 'P' printed TUI
    annotations for a libc function that uses instructions with long names,
    such as 'vpmovmskb' with its 9 chars:
    
      --- __strcmp_avx2.annotation.before	2019-03-06 16:31:39.368020425 -0300
      +++ __strcmp_avx2.annotation	2019-03-06 16:32:12.079450508 -0300
      @@ -2,284 +2,284 @@
       Event: cycles:ppp
    
       Percent        endbr64
      -  0.10         mov    %edi,%eax
      +  0.10         mov        %edi,%eax
      -               xor    %edx,%edx
      +               xor        %edx,%edx
      -  3.54         vpxor  %ymm7,%ymm7,%ymm7
      +  3.54         vpxor      %ymm7,%ymm7,%ymm7
      -               or     %esi,%eax
      +               or         %esi,%eax
      -               and    $0xfff,%eax
      +               and        $0xfff,%eax
      -               cmp    $0xf80,%eax
      +               cmp        $0xf80,%eax
      -             ↓ jg     370
      +             ↓ jg         370
      - 27.07         vmovdqu (%rdi),%ymm1
      + 27.07         vmovdqu    (%rdi),%ymm1
      -  7.97         vpcmpeqb (%rsi),%ymm1,%ymm0
      +  7.97         vpcmpeqb   (%rsi),%ymm1,%ymm0
      -  2.15         vpminub %ymm1,%ymm0,%ymm0
      +  2.15         vpminub    %ymm1,%ymm0,%ymm0
      -  4.09         vpcmpeqb %ymm7,%ymm0,%ymm0
      +  4.09         vpcmpeqb   %ymm7,%ymm0,%ymm0
      -  0.43         vpmovmskb %ymm0,%ecx
      +  0.43         vpmovmskb  %ymm0,%ecx
      -  1.53         test   %ecx,%ecx
      +  1.53         test       %ecx,%ecx
      -             ↓ je     b0
      +             ↓ je         b0
      -  5.26         tzcnt  %ecx,%edx
      +  5.26         tzcnt      %ecx,%edx
      - 18.40         movzbl (%rdi,%rdx,1),%eax
      + 18.40         movzbl     (%rdi,%rdx,1),%eax
      -  7.09         movzbl (%rsi,%rdx,1),%edx
      +  7.09         movzbl     (%rsi,%rdx,1),%edx
      -  3.34         sub    %edx,%eax
      +  3.34         sub        %edx,%eax
         2.37         vzeroupper
                    ← retq
                      nop
      -         50:   tzcnt  %ecx,%edx
      +         50:   tzcnt      %ecx,%edx
      -               movzbl 0x20(%rdi,%rdx,1),%eax
      +               movzbl     0x20(%rdi,%rdx,1),%eax
      -               movzbl 0x20(%rsi,%rdx,1),%edx
      +               movzbl     0x20(%rsi,%rdx,1),%edx
      -               sub    %edx,%eax
      +               sub        %edx,%eax
                      vzeroupper
                    ← retq
      -               data16 nopw %cs:0x0(%rax,%rax,1)
      +               data16     nopw %cs:0x0(%rax,%rax,1)
    Reported-by: NTravis Downs <travis.downs@gmail.com>
    LPU-Reference: CAOBGo4z1KfmWeOm6Et0cnX5Z6DWsG2PQbAvRn1MhVPJmXHrc5g@mail.gmail.com
    Cc: Adrian Hunter <adrian.hunter@intel.com>
    Cc: Jiri Olsa <jolsa@kernel.org>
    Cc: Namhyung Kim <namhyung@kernel.org>
    Link: https://lkml.kernel.org/n/tip-89wsdd9h9g6bvq52sgp6d0u4@git.kernel.orgSigned-off-by: NArnaldo Carvalho de Melo <acme@redhat.com>
    bc3bb795
annotate.c 71.3 KB