Skip to content
  • Kim Phillips's avatar
    perf tools: Add ARM Statistical Profiling Extensions (SPE) support · ffd3d18c
    Kim Phillips authored
    
    
    'perf record' and 'perf report --dump-raw-trace' supported in this
    release.
    
    Example usage:
    
     # perf record -e arm_spe/ts_enable=1,pa_enable=1/ dd if=/dev/zero of=/dev/null count=10000
     # perf report --dump-raw-trace
    
    Note that the perf.data file is portable, so the report can be run on
    another architecture host if necessary.
    
    Output will contain raw SPE data and its textual representation, such
    as:
    
    0x5c8 [0x30]: PERF_RECORD_AUXTRACE size: 0x200000  offset: 0  ref: 0x1891ad0e  idx: 1  tid: 2227  cpu: 1
    .
    . ... ARM SPE data: size 2097152 bytes
    .  00000000:  49 00                                           LD
    .  00000002:  b2 c0 3b 29 0f 00 00 ff ff                      VA 0xffff00000f293bc0
    .  0000000b:  b3 c0 eb 24 fb 00 00 00 80                      PA 0xfb24ebc0 ns=1
    .  00000014:  9a 00 00                                        LAT 0 XLAT
    .  00000017:  42 16                                           EV RETIRED L1D-ACCESS TLB-ACCESS
    .  00000019:  b0 00 c4 15 08 00 00 ff ff                      PC 0xff00000815c400 el3 ns=1
    .  00000022:  98 00 00                                        LAT 0 TOT
    .  00000025:  71 36 6c 21 2c 09 00 00 00                      TS 39395093558
    .  0000002e:  49 00                                           LD
    .  00000030:  b2 80 3c 29 0f 00 00 ff ff                      VA 0xffff00000f293c80
    .  00000039:  b3 80 ec 24 fb 00 00 00 80                      PA 0xfb24ec80 ns=1
    .  00000042:  9a 00 00                                        LAT 0 XLAT
    .  00000045:  42 16                                           EV RETIRED L1D-ACCESS TLB-ACCESS
    .  00000047:  b0 f4 11 16 08 00 00 ff ff                      PC 0xff0000081611f4 el3 ns=1
    .  00000050:  98 00 00                                        LAT 0 TOT
    .  00000053:  71 36 6c 21 2c 09 00 00 00                      TS 39395093558
    .  0000005c:  48 00                                           INSN-OTHER
    .  0000005e:  42 02                                           EV RETIRED
    .  00000060:  b0 2c ef 7f 08 00 00 ff ff                      PC 0xff0000087fef2c el3 ns=1
    .  00000069:  98 00 00                                        LAT 0 TOT
    .  0000006c:  71 d1 6f 21 2c 09 00 00 00                      TS 39395094481
    ...
    
    Other release notes:
    
    - applies to acme's perf/{core,urgent} branches, likely elsewhere
    
    - Report is self-contained within the tool.
      Record requires enabling the kernel SPE driver by
      setting CONFIG_ARM_SPE_PMU.
    
    - The intel-bts implementation was used as a starting point; its
      min/default/max buffer sizes and power of 2 pages granularity need to be
      revisited for ARM SPE
    
    - Recording across multiple SPE clusters/domains not supported
    
    - Snapshot support (record -S), and conversion to native perf events
      (e.g., via 'perf inject --itrace'), are also not supported
    
    - Technically both cs-etm and spe can be used simultaneously, however
      disabled for simplicity in this release
    
    Signed-off-by: default avatarKim Phillips <kim.phillips@arm.com>
    Reviewed-by: default avatarDongjiu Geng <gengdongjiu@huawei.com>
    Acked-by: default avatarAdrian Hunter <adrian.hunter@intel.com>
    Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
    Cc: Andi Kleen <ak@linux.intel.com>
    Cc: Jiri Olsa <jolsa@kernel.org>
    Cc: linux-arm-kernel@lists.infradead.org
    Cc: Marc Zyngier <marc.zyngier@arm.com>
    Cc: Mark Rutland <mark.rutland@arm.com>
    Cc: Mathieu Poirier <mathieu.poirier@linaro.org>
    Cc: Pawel Moll <pawel.moll@arm.com>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Rob Herring <robh@kernel.org>
    Cc: Suzuki Poulouse <suzuki.poulose@arm.com>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Cc: Wang Nan <wangnan0@huawei.com>
    Cc: Will Deacon <will.deacon@arm.com>
    Link: http://lkml.kernel.org/r/20180114132850.0b127434b704a26bad13268f@arm.com
    
    
    Signed-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
    ffd3d18c