• J
    perf annotate: Display all available events on --stdio · 04d2600a
    Jin Yao 提交于
    When we perform the following command lines:
    
      $ perf record -e "{cycles,branches}" ./div
      $ perf annotate main --stdio
    
    The output shows only the first event, "cycles" and the displaying
    format is not correct.
    
       Percent         |      Source code & Disassembly of div for cycles (44550 samples)
      -----------------------------------------------------------------------------------
                       :
                       :
                       :
                       :            Disassembly of section .text:
                       :
                       :            00000000004004b0 <main>:
                       :            main():
                       :
                       :                    return i;
                       :            }
                       :
                       :            int main(void)
                       :            {
          0.00 :   4004b0:       push   %rbx
                       :                    int i;
                       :                    int flag;
                       :                    volatile double x = 1212121212, y = 121212;
                       :
                       :                    s_randseed = time(0);
          0.00 :   4004b1:       xor    %edi,%edi
                       :                    srand(s_randseed);
          0.00 :   4004b3:       mov    $0x77359400,%ebx
                       :
                       :                    return i;
                       :            }
    
    The issue is that the value of the 'nr_percent' variable is hardcoded to
    1.  This patch fixes it.
    
    With this patch, the output is:
    
       Percent         |      Source code & Disassembly of div for cycles (44550 samples)
      -----------------------------------------------------------------------------------
                       :
                       :
                       :
                       :            Disassembly of section .text:
                       :
                       :            00000000004004b0 <main>:
                       :            main():
                       :
                       :                    return i;
                       :            }
                       :
                       :            int main(void)
                       :            {
          0.00    0.00 :   4004b0:       push   %rbx
                       :                    int i;
                       :                    int flag;
                       :                    volatile double x = 1212121212, y = 121212;
                       :
                       :                    s_randseed = time(0);
          0.00    0.00 :   4004b1:       xor    %edi,%edi
                       :                    srand(s_randseed);
          0.00    0.00 :   4004b3:       mov    $0x77359400,%ebx
                       :
                       :                    return i;
                       :            }
    Signed-off-by: NJin Yao <yao.jin@linux.intel.com>
    Tested-by: NArnaldo Carvalho de Melo <acme@redhat.com>
    Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
    Cc: Andi Kleen <ak@linux.intel.com>
    Cc: Jiri Olsa <jolsa@kernel.org>
    Cc: Kan Liang <kan.liang@linux.intel.com>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Fixes: f681d593 ("perf annotate: Remove disasm__calc_percent() from disasm_line__print()")
    Link: http://lkml.kernel.org/r/1525881435-4092-1-git-send-email-yao.jin@linux.intel.comSigned-off-by: NArnaldo Carvalho de Melo <acme@redhat.com>
    04d2600a
annotate.c 65.5 KB