3

I read the manual of perf list, and find the following PMU event definitions of memory load/store:

mem-loads OR cpu/mem-loads/                        [Kernel PMU event]
mem-stores OR cpu/mem-stores/                      [Kernel PMU event]

But I always read perf script which uses "cpu/mem-loads/pp" instead of "cpu/mem-loads/". What is the difference between them? Are they the same thing? I have tried to google the answers, but can't find the explanation.

Nan Xiao
  • 16,671
  • 18
  • 103
  • 164

1 Answers1

3

The p modifier stands for precise level When doing sampling, it used to indicate the skid you tolerate: how far can be t reported instruction from the effective instructions that generated the sample. pp means that the SAMPLE_IP is requested to have 0 skid. In other word, when you do memory accesses sampling, you want to know exactly which instruction generated the access.

See man perf list:

p - precise level
....
       The p modifier can be used for specifying how precise the instruction address should be. The p modifier can be specified multiple times:

           0 - SAMPLE_IP can have arbitrary skid
           1 - SAMPLE_IP must have constant skid
           2 - SAMPLE_IP requested to have 0 skid
           3 - SAMPLE_IP must have 0 skid

       For Intel systems precise event sampling is implemented with PEBS which supports up to precise-level 2.

       On AMD systems it is implemented using IBS (up to precise-level 2). The precise modifier works with event types 0x76 (cpu-cycles, CPU clocks not halted) and 0xC1 (micro-ops
       retired). Both events map to IBS execution sampling (IBS op) with the IBS Op Counter Control bit (IbsOpCntCtl) set respectively (see AMD64 Architecture Programmer’s Manual Volume
       2: System Programming, 13.3 Instruction-Based Sampling). Examples to use IBS:

           perf record -a -e cpu-cycles:p ...    # use ibs op counting cycles
           perf record -a -e r076:p ...          # same as -e cpu-cycles:p
           perf record -a -e r0C1:p ...          # use ibs op counting micro-ops
Manuel Selva
  • 18,554
  • 22
  • 89
  • 134