lkml.org 
[lkml]   [2018]   [May]   [9]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH] perf annotate: Display multiple events for --stdio
    Date
    When we perform following command lines:

    perf record -e "{cycles,branches}" ./div
    perf annotate main --stdio

    Only shows one 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 the value of nr_percent 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: Jin Yao <yao.jin@linux.intel.com>
    ---
    tools/perf/util/annotate.c | 3 +++
    1 file changed, 3 insertions(+)

    diff --git a/tools/perf/util/annotate.c b/tools/perf/util/annotate.c
    index 536ee14..5d74a30 100644
    --- a/tools/perf/util/annotate.c
    +++ b/tools/perf/util/annotate.c
    @@ -1263,6 +1263,9 @@ annotation_line__print(struct annotation_line *al, struct symbol *sym, u64 start
    max_percent = sample->percent;
    }

    + if (al->samples_nr > nr_percent)
    + nr_percent = al->samples_nr;
    +
    if (max_percent < min_pcnt)
    return -1;

    --
    2.7.4
    \
     
     \ /
      Last update: 2018-05-09 10:04    [W:2.445 / U:1.368 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site