17 Jan, 2018

1 commit

  • '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: Kim Phillips
    Reviewed-by: Dongjiu Geng
    Acked-by: Adrian Hunter
    Cc: Alexander Shishkin
    Cc: Andi Kleen
    Cc: Jiri Olsa
    Cc: linux-arm-kernel@lists.infradead.org
    Cc: Marc Zyngier
    Cc: Mark Rutland
    Cc: Mathieu Poirier
    Cc: Pawel Moll
    Cc: Peter Zijlstra
    Cc: Rob Herring
    Cc: Suzuki Poulouse
    Cc: Thomas Gleixner
    Cc: Wang Nan
    Cc: Will Deacon
    Link: http://lkml.kernel.org/r/20180114132850.0b127434b704a26bad13268f@arm.com
    Signed-off-by: Arnaldo Carvalho de Melo

    Kim Phillips