Message ID | 20210412091006.468557-1-leo.yan@linaro.org (mailing list archive) |
---|---|
Headers | show |
Series | perf arm-spe: Enable timestamp | expand |
Hi Leo, I was looking at testing this on N1SDP and I thought I would try the round trip with perf inject and then perf report but saw that perf inject with SPE always results in an error (unrelated to your change) -> ./perf report -i per-thread-spe-time.inject.data 0x1328 [0x8]: failed to process type: 9 [Bad address] Error: failed to process sample Do you have any test suggestions other than looking at the raw data? Thanks James On 12/04/2021 12:10, Leo Yan wrote: > This patch set is to enable timestamp for Arm SPE trace. It reads out > TSC parameters from the TIME_CONV event, the parameters are used for > conversion between timer counter and kernel time and which is applied > for Arm SPE samples. > > This version dropped the change for adding hardware clock parameters > into auxtrace info, alternatively, it utilizes the TIME_CONV event to > extract the clock parameters which is used for timestamp calculation. > > This patch set can be clearly applied on perf/core branch with: > > commit 2c0cb9f56020 ("perf test: Add a shell test for 'perf stat --bpf-counters' new option") > > Ths patch series has been tested on Hisilicon D06 platform. > > Changes from v3: > * Let to be backwards-compatible for TIME_CONV event (Adrian). > > Changes from v2: > * Changed to use TIME_CONV event for extracting clock parameters (Al). > > Changes from v1: > * Rebased patch series on the latest perf/core branch; > * Fixed the patch for dumping TSC parameters to support both the > older and new auxtrace info format. > > > Leo Yan (6): > perf arm-spe: Remove unused enum value ARM_SPE_PER_CPU_MMAPS > perf arm-spe: Save clock parameters from TIME_CONV event > perf arm-spe: Convert event kernel time to counter value > perf arm-spe: Assign kernel time to synthesized event > perf arm-spe: Bail out if the trace is later than perf event > perf arm-spe: Don't wait for PERF_RECORD_EXIT event > > tools/perf/util/arm-spe.c | 74 +++++++++++++++++++++++++++++++++------ > tools/perf/util/arm-spe.h | 1 - > 2 files changed, 64 insertions(+), 11 deletions(-) >
On Thu, Apr 15, 2021 at 05:43:24PM +0300, James Clark wrote: > Hi Leo, > > I was looking at testing this on N1SDP and I thought I would try the round trip with perf inject and > then perf report but saw that perf inject with SPE always results in an error (unrelated to your change) > > -> ./perf report -i per-thread-spe-time.inject.data > 0x1328 [0x8]: failed to process type: 9 [Bad address] > Error: > failed to process sample > > > Do you have any test suggestions other than looking at the raw data? Good catching! I didn't use inject mode for Arm SPE before (it's not not like Arm CoreSight for instruction sample, or SPE's branch sample is statistical so we cannot generate branch samples based on accurate interval). For the debugging, it's good to use "git grep" to search "Bad address" to check where the error happens, and can use gdb. I personally think it's possible to go back to check the sythenization flow, simply to say, it might have problems when inject samples but not in the decoding flow. Thanks, Leo