Hi Arnaldo, On Mon, Sep 14, 2020 at 07:53:05PM +0800, Leo Yan wrote: > This patch set is to refactor TSC implementation and move TSC code from > x86 folder to util/tsc.c, this allows all archs to reuse the code. And > alse move the TSC testing from x86 folder to tests so can work as a > common testing. > > So far, for x86 it needs to support cap_user_time_zero and for Arm64 > it needs to support cap_user_time_short. For architecture specific > code, every arch only needs to implement its own rdtsc() to read out > timer's counter. > > This patch set has been rebased on the perf/core branch with latest > commit b1f815c479c1 ("perf vendor events power9: Add hv_24x7 core level > metric events") and tested on Arm64 DB410c.
Could you pick up this patch set? Thanks! Leo > $ perf test list > [...] > 68: Convert perf time to TSC > [...] > > $ perf test 68 -v > 68: Convert perf time to TSC > --- start --- > test child forked, pid 10961 > mmap size 528384B > 1st event perf time 35715036563417 tsc 686221770989 > rdtsc time 35715036649719 tsc 686221772647 > 2nd event perf time 35715036660448 tsc 686221772852 > test child finished with 0 > ---- end ---- > Convert perf time to TSC: Ok > > Changes from v3: > * Added comments for Arm64's rdtsc() for short counter (PeterZ); > * Rebased on latest acme/perf/core branch. > > Changes from v2: > * Refactored patch set to move TSC common code to util/tsc.c (Wei/Al); > * Moved TSC testing to perf/tests (Wei); > * Dropped Arm SPE timestamp patch so can have clear purpose and easier > reviewing; will send Arm SPE timestamp as separate patch. > > > Leo Yan (6): > perf tsc: Move out common functions from x86 > perf tsc: Add rdtsc() for Arm64 > perf tsc: Calculate timestamp with cap_user_time_short > perf tsc: Support cap_user_time_short for event TIME_CONV > perf tests tsc: Make tsc testing as a common testing > perf tests tsc: Add checking helper is_supported() > > tools/lib/perf/include/perf/event.h | 4 + > tools/perf/arch/arm64/util/Build | 1 + > tools/perf/arch/arm64/util/tsc.c | 21 +++++ > tools/perf/arch/x86/include/arch-tests.h | 1 - > tools/perf/arch/x86/tests/Build | 1 - > tools/perf/arch/x86/tests/arch-tests.c | 4 - > tools/perf/arch/x86/util/tsc.c | 73 +---------------- > tools/perf/tests/Build | 1 + > tools/perf/tests/builtin-test.c | 5 ++ > .../{arch/x86 => }/tests/perf-time-to-tsc.c | 13 +++ > tools/perf/tests/tests.h | 2 + > tools/perf/util/jitdump.c | 14 ++-- > tools/perf/util/synthetic-events.c | 8 -- > tools/perf/util/tsc.c | 81 +++++++++++++++++++ > tools/perf/util/tsc.h | 5 ++ > 15 files changed, 143 insertions(+), 91 deletions(-) > create mode 100644 tools/perf/arch/arm64/util/tsc.c > rename tools/perf/{arch/x86 => }/tests/perf-time-to-tsc.c (93%) > > -- > 2.17.1 >