Re: [PATCH v4 0/5] perf report: Show branch type
From: Jin, Yao <hidden>
Date: 2017-04-13 03:25:45
Also in:
lkml
On 4/13/2017 10:00 AM, Jin, Yao wrote:
On 4/12/2017 6:58 PM, Jiri Olsa wrote:quoted
On Wed, Apr 12, 2017 at 06:21:01AM +0800, Jin Yao wrote: SNIPquoted
3. Use 2 bits in perf_branch_entry for a "cross" metrics checking for branch cross 4K or 2M area. It's an approximate computing for checking if the branch cross 4K page or 2MB page. For example: perf record -g --branch-filter any,save_type <command> perf report --stdio JCC forward: 27.7% JCC backward: 9.8% JMP: 0.0% IND_JMP: 6.5% CALL: 26.6% IND_CALL: 0.0% RET: 29.3% IRET: 0.0% CROSS_4K: 0.0% CROSS_2M: 14.3%got mangled perf report --stdio output for: [root@ibm-x3650m4-02 perf]# ./perf record -j any,save_type kill kill: not enough arguments [ perf record: Woken up 1 times to write data ] [ perf record: Captured and wrote 0.013 MB perf.data (18 samples) ] [root@ibm-x3650m4-02 perf]# ./perf report --stdio -f | head -30 # To display the perf.data header info, please use --header/--header-only options. # # # Total Lost Samples: 0 # # Samples: 253 of event 'cycles' # Event count (approx.): 253 # # Overhead Command Source Shared Object Source Symbol Target Symbol Basic Block Cycles # ........ ....... .................... ....................................... ....................................... .................. # 8.30% perf Um [kernel.vmlinux] [k] __intel_pmu_enable_all.constprop.17 [k] native_write_msr - 7.91% perf Um [kernel.vmlinux] [k] intel_pmu_lbr_enable_all [k] __intel_pmu_enable_all.constprop.17 - 7.91% perf Um [kernel.vmlinux] [k] native_write_msr [k] intel_pmu_lbr_enable_all - 6.32% kill libc-2.24.so [.] _dl_addr [.] _dl_addr - 5.93% perf Um [kernel.vmlinux] [k] perf_iterate_ctx [k] perf_iterate_ctx - 2.77% kill libc-2.24.so [.] malloc [.] malloc - 1.98% kill libc-2.24.so [.] _int_malloc [.] _int_malloc - 1.58% kill [kernel.vmlinux] [k] __rb_insert_augmented [k] __rb_insert_augmented - 1.58% perf Um [kernel.vmlinux] [k] perf_event_exec [k] perf_event_exec - 1.19% kill [kernel.vmlinux] [k] anon_vma_interval_tree_insert [k] anon_vma_interval_tree_insert - 1.19% kill [kernel.vmlinux] [k] free_pgd_range [k] free_pgd_range - 1.19% kill [kernel.vmlinux] [k] n_tty_write [k] n_tty_write - 1.19% perf Um [kernel.vmlinux] [k] native_sched_clock [k] sched_clock - ... SNIP jirkaSorry, I look at this issue at midnight in Shanghai. I misunderstood that the above output was only a mail format issue. Sorry about that. Now I recheck the output, and yes, the perf report output is mangled. But my patch doesn't touch the associated code. Anyway I remove my patches, pull the latest update from perf/core branch and run tests to check if its a regression issue. I test on HSW and SKL both. 1. On HSW. root@hsw:/tmp# perf record -j any kill ...... /* SNIP */ For more details see kill(1). [ perf record: Woken up 1 times to write data ] [ perf record: Captured and wrote 0.014 MB perf.data (9 samples) ] root@hsw:/tmp# perf report --stdio # To display the perf.data header info, please use --header/--header-only options. # # # Total Lost Samples: 0 # # Samples: 144 of event 'cycles' # Event count (approx.): 144 # # Overhead Command Source Shared Object Source Symbol Target Symbol Basic Block Cycles # ........ ....... .................... ............................... ............................... .................. # 10.42% kill libc-2.23.so [.] read_alias_file [.] read_alias_file - 9.72% kill [kernel.vmlinux] [k] update_load_avg [k] update_load_avg - 9.03% perf Um [unknown] [k] 0000000000000000 [k] 0000000000000000 - 8.33% kill libc-2.23.so [.] _int_malloc [.] _int_malloc - ...... /* SNIP */ 0.69% kill [kernel.vmlinux] [k] _raw_spin_lock [k] unmap_page_range - 0.69% perf Um [kernel.vmlinux] [k] __intel_pmu_enable_all [k] native_write_msr - 0.69% perf Um [kernel.vmlinux] [k] intel_pmu_lbr_enable_all [k] __intel_pmu_enable_all - 0.69% perf Um [kernel.vmlinux] [k] native_write_msr [k] intel_pmu_lbr_enable_all - The issue is still there. 2. On SKL root@skl:/tmp# perf record -j any kill ...... /* SNIP */ For more details see kill(1). [ perf record: Woken up 1 times to write data ] [ perf record: Captured and wrote 0.012 MB perf.data (1 samples) ] root@skl:/tmp# perf report --stdio # To display the perf.data header info, please use --header/--header-only options. # # # Total Lost Samples: 0 # # Samples: 32 of event 'cycles' # Event count (approx.): 32 # # Overhead Command Source Shared Object Source Symbol Target Symbol Basic Block Cycles # ........ ....... .................... ............................ ............................ .................. # 90.62% perf Um [unknown] [k] 0000000000000000 [k] 0000000000000000 - 3.12% perf Um [kernel.vmlinux] [k] __intel_pmu_enable_all [k] native_write_msr 11 3.12% perf Um [kernel.vmlinux] [k] intel_pmu_lbr_enable_all [k] __intel_pmu_enable_all 4 3.12% perf Um [kernel.vmlinux] [k] native_write_msr [k] intel_pmu_lbr_enable_all - The issue is there too. Now it works without my patch and it runs with latest perf/core branch. So it looks like a regression issue. Thanks Jin Yao
I have tested, the regression issue is happened after this commit:
bdd97ca perf tools: Refactor the code to strip command name with {l,r}trim()
CC to the author for double checking.
Thanks
Jin Yao