Re: Perf Reports Jump Instructions as Memory Access Instructions

Andi Kleen <[email protected]>
Newsgroups org.kernel.vger.linux-trace-users,org.kernel.vger.linux-perf-users
Message-ID <[email protected]>
> > > 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
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.