Re: Perf Reports Jump Instructions as Memory Access Instructions
ahmadkhorrami <[email protected]> Wed, 27 May 2020 00:25:35 +0430
| Newsgroups | org.kernel.vger.linux-trace-users,org.kernel.vger.linux-perf-users |
|---|---|
| Message-ID | <[email protected]> |
Thanks! This seems reasonable. But as Arnaldo says, why is there a skid in the access address while PEBS is used? Both RIP and Access Address should match, Right? Regards. On 2020-05-26 21:12, Andi Kleen wrote: > The access point is at offset 0 of the following disassembly: > Dump of assembler code for function cairo_surface_get_device_scale@plt: >> 0x000000000002a310 <+0>: jmpq *0x2c8b3a(%rip) # 0x2f2e50 >> 0x000000000002a316 <+6>: pushq $0x1c7 >> 0x000000000002a31b <+11>: jmpq 0x28690 >> >> This is an unconditional jump which will not lead to macrofusion. But that will access memory, no? The instruction at offset 0. Instruction fetches are not sampled by the MEM_INST_RETIRED event. This is an indirect jump through memory, so it accesses the memory at 0x2c8b3a(%rip). These kind of accesses are sampled by the event. Other memory accesses as part of other instructions may be sampled too. -Andi