[PATCH v4 0/6] Perf tool: Support TSC for Arm64

Arnaldo Carvalho de Melo acme at kernel.org
Tue Sep 22 12:49:06 EDT 2020


Em Tue, Sep 22, 2020 at 08:07:32PM +0800, Leo Yan escreveu:
> 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!

Yeah, I picked it up now, its a pity nobody provided Acks :-\

Or have a missed them somehow?

- Arnaldo
 
> 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
> > 

-- 

- Arnaldo



More information about the linux-arm-kernel mailing list