linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Leo Yan <leo.yan@linaro.org>
To: Arnaldo Carvalho de Melo <acme@kernel.org>,
	Peter Zijlstra <peterz@infradead.org>,
	Will Deacon <will@kernel.org>, Ingo Molnar <mingo@redhat.com>,
	Mark Rutland <mark.rutland@arm.com>,
	Alexander Shishkin <alexander.shishkin@linux.intel.com>,
	Jiri Olsa <jolsa@redhat.com>, Namhyung Kim <namhyung@kernel.org>,
	John Garry <john.garry@huawei.com>,
	Mathieu Poirier <mathieu.poirier@linaro.org>,
	Adrian Hunter <adrian.hunter@intel.com>,
	Kemeng Shi <shikemeng@huawei.com>,
	Ian Rogers <irogers@google.com>,
	Remi Bernon <rbernon@codeweavers.com>,
	Nick Gasson <nick.gasson@arm.com>,
	Stephane Eranian <eranian@google.com>,
	Andi Kleen <ak@linux.intel.com>,
	Steve MacLean <Steve.MacLean@Microsoft.com>,
	"Gustavo A. R. Silva" <gustavoars@kernel.org>,
	Zou Wei <zou_wei@huawei.com>,
	linux-kernel@vger.kernel.org,
	linux-arm-kernel@lists.infradead.org
Cc: Leo Yan <leo.yan@linaro.org>
Subject: [PATCH v4 0/6] Perf tool: Support TSC for Arm64
Date: Mon, 14 Sep 2020 19:53:05 +0800	[thread overview]
Message-ID: <20200914115311.2201-1-leo.yan@linaro.org> (raw)

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.

  $ 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


             reply	other threads:[~2020-09-14 17:48 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-09-14 11:53 Leo Yan [this message]
2020-09-14 11:53 ` [PATCH v4 1/6] perf tsc: Move out common functions from x86 Leo Yan
2020-09-14 11:53 ` [PATCH v4 2/6] perf tsc: Add rdtsc() for Arm64 Leo Yan
2020-09-14 11:53 ` [PATCH v4 3/6] perf tsc: Calculate timestamp with cap_user_time_short Leo Yan
2020-09-14 11:53 ` [PATCH v4 4/6] perf tsc: Support cap_user_time_short for event TIME_CONV Leo Yan
2020-09-14 11:53 ` [PATCH v4 5/6] perf tests tsc: Make tsc testing as a common testing Leo Yan
2020-09-14 11:53 ` [PATCH v4 6/6] perf tests tsc: Add checking helper is_supported() Leo Yan
2020-09-22 12:07 ` [PATCH v4 0/6] Perf tool: Support TSC for Arm64 Leo Yan
2020-09-22 16:49   ` Arnaldo Carvalho de Melo
2020-09-23  8:12     ` Leo Yan
2020-09-23 15:27     ` Arnaldo Carvalho de Melo
2020-09-23 15:55       ` Arnaldo Carvalho de Melo
2020-09-23 23:48         ` Leo Yan

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20200914115311.2201-1-leo.yan@linaro.org \
    --to=leo.yan@linaro.org \
    --cc=Steve.MacLean@Microsoft.com \
    --cc=acme@kernel.org \
    --cc=adrian.hunter@intel.com \
    --cc=ak@linux.intel.com \
    --cc=alexander.shishkin@linux.intel.com \
    --cc=eranian@google.com \
    --cc=gustavoars@kernel.org \
    --cc=irogers@google.com \
    --cc=john.garry@huawei.com \
    --cc=jolsa@redhat.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mark.rutland@arm.com \
    --cc=mathieu.poirier@linaro.org \
    --cc=mingo@redhat.com \
    --cc=namhyung@kernel.org \
    --cc=nick.gasson@arm.com \
    --cc=peterz@infradead.org \
    --cc=rbernon@codeweavers.com \
    --cc=shikemeng@huawei.com \
    --cc=will@kernel.org \
    --cc=zou_wei@huawei.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).