On Wed, May 17, 2017 at 10:43 AM, Dehao Chen dehao@google.com wrote:
I think there is something wrong with the branch_stack:
e.g. ..... 29: 00000000004005a0 -> 00000000004005b0 0 cycles P 0 ..... 30: 0000000000400888 -> 000000000040088c 0 cycles P 0 ..... 31: 000000000040088c -> 0000000000400898 0 cycles P 0
from the objdump: 400884: 97ffff3f bl 400580 __printf_chk@plt 400888: 97ffff46 bl 4005a0 rand@plt 40088c: b8004660 str w0, [x19],#4 400890: eb14027f cmp x19, x20 400894: 54ffffa1 b.ne 400888 <sort_array+0x50> 400898: d285e280 mov x0, #0x2f14
looks like 400888 is not jumping to 40088c, but 4005a0 instead. and 40088c is not even a jump instruction.
I processed the same perf.data into an inj file with the following two patches: https://lists.linaro.org/pipermail/coresight/2017-May/000601.html https://lists.linaro.org/pipermail/coresight/2017-May/000600.html
Please see attached data.txt, the output of: # sample_merger -profile ./inj -binary ./sort_3k
Here is one of the branch stacks from "perf report -D -i inj":
0xaeca0 [0x630]: PERF_RECORD_SAMPLE(IP, 0x2): 15163/15163: 0x4005a0 period: 4 addr: 0 ... branch stack: nr:64 ..... 0: 00000000004005ac -> 0000ffffa3693e98 0 cycles P 0 ..... 1: 0000ffffa3693ea0 -> 0000ffffa36939b0 0 cycles P 0 ..... 2: 0000ffffa36939d4 -> 0000ffffa36939d8 0 cycles P 0 ..... 3: 0000ffffa36939dc -> 0000ffffa36939e0 0 cycles P 0 ..... 4: 0000ffffa36939e0 -> 0000ffffa36939e4 0 cycles P 0 ..... 5: 0000ffffa36939f0 -> 0000ffffa3693b40 0 cycles P 0 ..... 6: 0000ffffa3693b48 -> 0000ffffa3693b4c 0 cycles P 0 ..... 7: 0000ffffa3693b54 -> 0000ffffa3693b58 0 cycles P 0 ..... 8: 0000ffffa3693b84 -> 0000ffffa3693b88 0 cycles P 0 ..... 9: 0000ffffa3693b9c -> 0000ffffa36939f4 0 cycles P 0 ..... 10: 0000ffffa3693a04 -> 0000ffffa3693a08 0 cycles P 0 ..... 11: 0000ffffa3693a0c -> 0000ffffa3693a10 0 cycles P 0 ..... 12: 0000ffffa3693a1c -> 0000ffffa3693ea4 0 cycles P 0 ..... 13: 0000ffffa3693ea8 -> 000000000040088c 0 cycles P 0 ..... 14: 0000000000400894 -> 0000000000400888 0 cycles P 0 ..... 15: 0000000000400888 -> 00000000004005a0 0 cycles P 0 ..... 16: 00000000004005ac -> 0000ffffa3693e98 0 cycles P 0 ..... 17: 0000ffffa3693ea0 -> 0000ffffa36939b0 0 cycles P 0 ..... 18: 0000ffffa36939d4 -> 0000ffffa36939d8 0 cycles P 0 ..... 19: 0000ffffa36939dc -> 0000ffffa36939e0 0 cycles P 0 ..... 20: 0000ffffa36939e0 -> 0000ffffa36939e4 0 cycles P 0 ..... 21: 0000ffffa36939f0 -> 0000ffffa3693b40 0 cycles P 0 ..... 22: 0000ffffa3693b48 -> 0000ffffa3693b4c 0 cycles P 0 ..... 23: 0000ffffa3693b54 -> 0000ffffa3693b58 0 cycles P 0 ..... 24: 0000ffffa3693b84 -> 0000ffffa3693ba0 0 cycles P 0 ..... 25: 0000ffffa3693ba4 -> 0000ffffa3693b90 0 cycles P 0 ..... 26: 0000ffffa3693b9c -> 0000ffffa36939f4 0 cycles P 0 ..... 27: 0000ffffa3693a04 -> 0000ffffa3693a08 0 cycles P 0 ..... 28: 0000ffffa3693a0c -> 0000ffffa3693a10 0 cycles P 0 ..... 29: 0000ffffa3693a1c -> 0000ffffa3693ea4 0 cycles P 0 ..... 30: 0000ffffa3693ea8 -> 000000000040088c 0 cycles P 0 ..... 31: 0000000000400894 -> 0000000000400888 0 cycles P 0 ..... 32: 0000000000400888 -> 00000000004005a0 0 cycles P 0 ..... 33: 00000000004005ac -> 0000ffffa3693e98 0 cycles P 0 ..... 34: 0000ffffa3693ea0 -> 0000ffffa36939b0 0 cycles P 0 ..... 35: 0000ffffa36939d4 -> 0000ffffa36939d8 0 cycles P 0 ..... 36: 0000ffffa36939dc -> 0000ffffa36939e0 0 cycles P 0 ..... 37: 0000ffffa36939e0 -> 0000ffffa36939e4 0 cycles P 0 ..... 38: 0000ffffa36939f0 -> 0000ffffa3693b40 0 cycles P 0 ..... 39: 0000ffffa3693b48 -> 0000ffffa3693b4c 0 cycles P 0 ..... 40: 0000ffffa3693b54 -> 0000ffffa3693b58 0 cycles P 0 ..... 41: 0000ffffa3693b84 -> 0000ffffa3693b88 0 cycles P 0 ..... 42: 0000ffffa3693b9c -> 0000ffffa36939f4 0 cycles P 0 ..... 43: 0000ffffa3693a04 -> 0000ffffa3693a08 0 cycles P 0 ..... 44: 0000ffffa3693a0c -> 0000ffffa3693a10 0 cycles P 0 ..... 45: 0000ffffa3693a1c -> 0000ffffa3693ea4 0 cycles P 0 ..... 46: 0000ffffa3693ea8 -> 000000000040088c 0 cycles P 0 ..... 47: 0000000000400894 -> 0000000000400888 0 cycles P 0 ..... 48: 0000000000400888 -> 00000000004005a0 0 cycles P 0 ..... 49: 00000000004005ac -> 0000ffffa3693e98 0 cycles P 0 ..... 50: 0000ffffa3693ea0 -> 0000ffffa36939b0 0 cycles P 0 ..... 51: 0000ffffa36939d4 -> 0000ffffa36939d8 0 cycles P 0 ..... 52: 0000ffffa36939dc -> 0000ffffa36939e0 0 cycles P 0 ..... 53: 0000ffffa36939e0 -> 0000ffffa36939e4 0 cycles P 0 ..... 54: 0000ffffa36939f0 -> 0000ffffa3693b40 0 cycles P 0 ..... 55: 0000ffffa3693b48 -> 0000ffffa3693b4c 0 cycles P 0 ..... 56: 0000ffffa3693b54 -> 0000ffffa3693b58 0 cycles P 0 ..... 57: 0000ffffa3693b84 -> 0000ffffa3693b88 0 cycles P 0 ..... 58: 0000ffffa3693b9c -> 0000ffffa36939f4 0 cycles P 0 ..... 59: 0000ffffa3693a04 -> 0000ffffa3693a08 0 cycles P 0 ..... 60: 0000ffffa3693a0c -> 0000ffffa3693a10 0 cycles P 0 ..... 61: 0000ffffa3693a1c -> 0000ffffa3693ea4 0 cycles P 0 ..... 62: 0000ffffa3693ea8 -> 000000000040088c 0 cycles P 0 ..... 63: 0000000000400894 -> 0000000000400888 0 cycles P 0