2
0
mirror of https://github.com/edk2-porting/linux-next.git synced 2024-12-24 21:24:00 +08:00
linux-next/tools/perf/util/intel-pt-decoder
Adrian Hunter 7ba8fa20e2 perf intel-pt: Fix instructions sampling rate
The timestamp used to determine if an instruction sample is made, is an
estimate based on the number of instructions since the last known
timestamp. A consequence is that it might go backwards, which results in
extra samples. Change it so that a sample is only made when the
timestamp goes forwards.

Note this does not affect a sampling period of 0 or sampling periods
specified as a count of instructions.

Example:

 Before:

 $ perf script --itrace=i10us
 ls 13812 [003] 2167315.222583:       3270 instructions:u:      7fac71e2e494 __GI___tunables_init+0xf4 (/lib/x86_64-linux-gnu/ld-2.28.so)
 ls 13812 [003] 2167315.222667:      30902 instructions:u:      7fac71e2da0f _dl_cache_libcmp+0x2f (/lib/x86_64-linux-gnu/ld-2.28.so)
 ls 13812 [003] 2167315.222667:         10 instructions:u:      7fac71e2d9ff _dl_cache_libcmp+0x1f (/lib/x86_64-linux-gnu/ld-2.28.so)
 ls 13812 [003] 2167315.222667:          8 instructions:u:      7fac71e2d9ea _dl_cache_libcmp+0xa (/lib/x86_64-linux-gnu/ld-2.28.so)
 ls 13812 [003] 2167315.222667:         14 instructions:u:      7fac71e2d9ea _dl_cache_libcmp+0xa (/lib/x86_64-linux-gnu/ld-2.28.so)
 ls 13812 [003] 2167315.222667:          6 instructions:u:      7fac71e2d9ff _dl_cache_libcmp+0x1f (/lib/x86_64-linux-gnu/ld-2.28.so)
 ls 13812 [003] 2167315.222667:         14 instructions:u:      7fac71e2d9ff _dl_cache_libcmp+0x1f (/lib/x86_64-linux-gnu/ld-2.28.so)
 ls 13812 [003] 2167315.222667:          4 instructions:u:      7fac71e2dab2 _dl_cache_libcmp+0xd2 (/lib/x86_64-linux-gnu/ld-2.28.so)
 ls 13812 [003] 2167315.222728:      16423 instructions:u:      7fac71e2477a _dl_map_object_deps+0x1ba (/lib/x86_64-linux-gnu/ld-2.28.so)
 ls 13812 [003] 2167315.222734:      12731 instructions:u:      7fac71e27938 _dl_name_match_p+0x68 (/lib/x86_64-linux-gnu/ld-2.28.so)
 ...

 After:
 $ perf script --itrace=i10us
 ls 13812 [003] 2167315.222583:       3270 instructions:u:      7fac71e2e494 __GI___tunables_init+0xf4 (/lib/x86_64-linux-gnu/ld-2.28.so)
 ls 13812 [003] 2167315.222667:      30902 instructions:u:      7fac71e2da0f _dl_cache_libcmp+0x2f (/lib/x86_64-linux-gnu/ld-2.28.so)
 ls 13812 [003] 2167315.222728:      16479 instructions:u:      7fac71e2477a _dl_map_object_deps+0x1ba (/lib/x86_64-linux-gnu/ld-2.28.so)
 ...

Signed-off-by: Adrian Hunter <adrian.hunter@intel.com>
Cc: Jiri Olsa <jolsa@redhat.com>
Cc: stable@vger.kernel.org
Fixes: f4aa081949 ("perf tools: Add Intel PT decoder")
Link: http://lkml.kernel.org/r/20190510124143.27054-2-adrian.hunter@intel.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
2019-05-16 14:17:23 -03:00
..
Build perf tools: Rename build libperf to perf 2019-02-14 15:18:08 -03:00
gen-insn-attr-x86.awk License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
inat_types.h perf tools: Fix tarball build broken by pt/bts 2015-08-22 12:27:07 -03:00
inat.c perf tools: Fix tarball build broken by pt/bts 2015-08-22 12:27:07 -03:00
inat.h perf intel-pt: Bring instruction decoder files into line with the kernel 2017-11-28 14:28:49 -03:00
insn.c perf tools: Add AVX-512 support to the instruction decoder used by Intel PT 2016-07-21 09:37:18 -03:00
insn.h perf tools intel-pt-decoder: Update insn.h from the kernel sources 2018-06-01 16:13:18 -03:00
intel-pt-decoder.c perf intel-pt: Fix instructions sampling rate 2019-05-16 14:17:23 -03:00
intel-pt-decoder.h perf intel-pt: Add decoder flags for trace begin / end 2018-09-20 15:19:51 -03:00
intel-pt-insn-decoder.c perf script: Fix LBR skid dump problems in brstackinsn 2018-12-28 16:33:02 -03:00
intel-pt-insn-decoder.h perf intel-pt/bts: Tidy instruction buffer size usage 2016-10-24 10:31:32 -03:00
intel-pt-log.c perf intel-pt: Add more event information to debug log 2018-11-05 14:53:37 -03:00
intel-pt-log.h perf intel-pt: Add more event information to debug log 2018-11-05 14:53:37 -03:00
intel-pt-pkt-decoder.c perf intel-pt: Fix packet decoding of CYC packets 2018-06-25 11:59:36 -03:00
intel-pt-pkt-decoder.h perf intel-pt: Add decoder support for ptwrite and power event packets 2017-06-21 11:35:50 -03:00
x86-opcode-map.txt x86/decoder: Fix and update the opcodes map 2017-12-15 13:45:20 +01:00