From: Adrian Hunter <adrian.hunter@intel.com>
To: Arnaldo Carvalho de Melo <acme@kernel.org>
Cc: Peter Zijlstra <peterz@infradead.org>,
linux-kernel@vger.kernel.org, David Ahern <dsahern@gmail.com>,
Frederic Weisbecker <fweisbec@gmail.com>,
Jiri Olsa <jolsa@redhat.com>, Namhyung Kim <namhyung@gmail.com>,
Paul Mackerras <paulus@samba.org>,
Stephane Eranian <eranian@google.com>
Subject: [PATCH 00/25] perf tools: Introduce an abstraction for Instruction Tracing
Date: Tue, 11 Nov 2014 16:16:38 +0200 [thread overview]
Message-ID: <1415715423-15563-1-git-send-email-adrian.hunter@intel.com> (raw)
Hi
I have separated out some more preparatory patches for Intel PT.
The first 3 patches are small fixes, but the rest introduce
an abstraction for Instruction tracing.
The abstraction has two separate aspects:
1. recording Instruction Trace data
2. processing Instruction Trace data
Recording consists of mmapping a separate buffer and copying
the data into the perf.data file. The buffer is an AUX area
buffer although the details of the AUX area are not implemented
because the kernel support is pending. The data is written
preceded by a new user event PERF_RECORD_ITRACE. The data is
too big to fit in the event but follows immediately afterward.
Session processing has to skip to get to the next event header
in a similar fashion to the existing PERF_RECORD_HEADER_TRACING_DATA
event. The main recording patches are:
perf evlist: Add initial support for mmapping an Instruction Trace buffer
perf tools: Add user events for Instruction Tracing
perf tools: Add support for Instruction Trace recording
perf record: Add basic Instruction Tracing support
Processing consists of providing hooks in session processing
to enable an Instruction Trace decoder to see all the events
and deliver synthesized events transparently into the event
stream. The main processing patch is:
perf session: Add hooks to allow transparent decoding of Instruction Tracing data
Adrian Hunter (25):
perf tools: Do not poll events that use the system_wide flag
perf tools: Add perf-read-vdso32 and perf-read-vdsox32 to .gitignore
perf tools: Only override the default :tid comm entry
perf header: Add Instruction Tracing feature
perf evlist: Add initial support for mmapping an Instruction Trace buffer
perf tools: Add user events for Instruction Tracing
perf tools: Add support for Instruction Trace recording
perf record: Add basic Instruction Tracing support
perf record: Extend -m option for Instruction Tracing mmap pages
perf tools: Add a user event for Instruction Tracing errors
perf session: Add hooks to allow transparent decoding of Instruction Tracing data
perf session: Add Instruction Tracing options
perf itrace: Add helpers for Instruction Tracing errors
perf itrace: Add helpers for queuing Instruction Tracing data
perf itrace: Add a heap for sorting Instruction Tracing queues
perf itrace: Add processing for Instruction Tracing events
perf itrace: Add a hashtable for caching decoded instructions
perf tools: Add member to struct dso for an instruction cache
perf script: Add Instruction Tracing support
perf script: Always allow fields 'addr' and 'cpu' for itrace
perf report: Add Instruction Tracing support
perf inject: Re-pipe Instruction Tracing events
perf inject: Add Instruction Tracing support
perf tools: Add Instruction Tracing index
perf tools: Hit all build ids when Instruction Tracing
tools/perf/.gitignore | 2 +
tools/perf/Documentation/perf-inject.txt | 27 +
tools/perf/Documentation/perf-record.txt | 2 +
tools/perf/Documentation/perf-report.txt | 28 +
tools/perf/Documentation/perf-script.txt | 28 +
tools/perf/Makefile.perf | 2 +
tools/perf/builtin-buildid-list.c | 9 +
tools/perf/builtin-inject.c | 157 +++-
tools/perf/builtin-record.c | 173 +++-
tools/perf/builtin-report.c | 12 +
tools/perf/builtin-script.c | 39 +-
tools/perf/perf.h | 2 +
tools/perf/util/dso.c | 2 +
tools/perf/util/dso.h | 3 +
tools/perf/util/event.c | 3 +
tools/perf/util/event.h | 38 +
tools/perf/util/evlist.c | 80 +-
tools/perf/util/evlist.h | 6 +
tools/perf/util/header.c | 36 +
tools/perf/util/header.h | 1 +
tools/perf/util/itrace.c | 1255 ++++++++++++++++++++++++++++++
tools/perf/util/itrace.h | 447 +++++++++++
tools/perf/util/record.c | 11 +-
tools/perf/util/session.c | 148 +++-
tools/perf/util/session.h | 6 +
tools/perf/util/thread.c | 5 +-
tools/perf/util/tool.h | 10 +-
27 files changed, 2481 insertions(+), 51 deletions(-)
create mode 100644 tools/perf/util/itrace.c
create mode 100644 tools/perf/util/itrace.h
Regards
Adrian
next reply other threads:[~2014-11-11 14:18 UTC|newest]
Thread overview: 29+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-11-11 14:16 Adrian Hunter [this message]
2014-11-11 14:16 ` [PATCH 01/25] perf tools: Do not poll events that use the system_wide flag Adrian Hunter
2014-11-20 7:40 ` [tip:perf/core] perf evlist: " tip-bot for Adrian Hunter
2014-11-11 14:16 ` [PATCH 02/25] perf tools: Add perf-read-vdso32 and perf-read-vdsox32 to .gitignore Adrian Hunter
2014-11-20 7:40 ` [tip:perf/core] " tip-bot for Adrian Hunter
2014-11-11 14:16 ` [PATCH 03/25] perf tools: Only override the default :tid comm entry Adrian Hunter
2014-11-20 7:40 ` [tip:perf/core] perf tools: Only override the default : tid " tip-bot for Adrian Hunter
2014-11-11 14:16 ` [PATCH 04/25] perf header: Add Instruction Tracing feature Adrian Hunter
2014-11-11 14:16 ` [PATCH 05/25] perf evlist: Add initial support for mmapping an Instruction Trace buffer Adrian Hunter
2014-11-11 14:16 ` [PATCH 06/25] perf tools: Add user events for Instruction Tracing Adrian Hunter
2014-11-11 14:16 ` [PATCH 07/25] perf tools: Add support for Instruction Trace recording Adrian Hunter
2014-11-11 14:16 ` [PATCH 08/25] perf record: Add basic Instruction Tracing support Adrian Hunter
2014-11-11 14:16 ` [PATCH 09/25] perf record: Extend -m option for Instruction Tracing mmap pages Adrian Hunter
2014-11-11 14:16 ` [PATCH 10/25] perf tools: Add a user event for Instruction Tracing errors Adrian Hunter
2014-11-11 14:16 ` [PATCH 11/25] perf session: Add hooks to allow transparent decoding of Instruction Tracing data Adrian Hunter
2014-11-11 14:16 ` [PATCH 12/25] perf session: Add Instruction Tracing options Adrian Hunter
2014-11-11 14:16 ` [PATCH 13/25] perf itrace: Add helpers for Instruction Tracing errors Adrian Hunter
2014-11-11 14:16 ` [PATCH 14/25] perf itrace: Add helpers for queuing Instruction Tracing data Adrian Hunter
2014-11-11 14:16 ` [PATCH 15/25] perf itrace: Add a heap for sorting Instruction Tracing queues Adrian Hunter
2014-11-11 14:16 ` [PATCH 16/25] perf itrace: Add processing for Instruction Tracing events Adrian Hunter
2014-11-11 14:16 ` [PATCH 17/25] perf itrace: Add a hashtable for caching decoded instructions Adrian Hunter
2014-11-11 14:16 ` [PATCH 18/25] perf tools: Add member to struct dso for an instruction cache Adrian Hunter
2014-11-11 14:16 ` [PATCH 19/25] perf script: Add Instruction Tracing support Adrian Hunter
2014-11-11 14:16 ` [PATCH 20/25] perf script: Always allow fields 'addr' and 'cpu' for itrace Adrian Hunter
2014-11-11 14:16 ` [PATCH 21/25] perf report: Add Instruction Tracing support Adrian Hunter
2014-11-11 14:17 ` [PATCH 22/25] perf inject: Re-pipe Instruction Tracing events Adrian Hunter
2014-11-11 14:17 ` [PATCH 23/25] perf inject: Add Instruction Tracing support Adrian Hunter
2014-11-11 14:17 ` [PATCH 24/25] perf tools: Add Instruction Tracing index Adrian Hunter
2014-11-11 14:17 ` [PATCH 25/25] perf tools: Hit all build ids when Instruction Tracing Adrian Hunter
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=1415715423-15563-1-git-send-email-adrian.hunter@intel.com \
--to=adrian.hunter@intel.com \
--cc=acme@kernel.org \
--cc=dsahern@gmail.com \
--cc=eranian@google.com \
--cc=fweisbec@gmail.com \
--cc=jolsa@redhat.com \
--cc=linux-kernel@vger.kernel.org \
--cc=namhyung@gmail.com \
--cc=paulus@samba.org \
--cc=peterz@infradead.org \
/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
Powered by JetHome