Messages in this thread | | | Date | Wed, 11 Feb 2015 17:40:46 -0300 | From | Arnaldo Carvalho de Melo <> | Subject | Re: [PATCH V4 00/23] perf tools: Introduce an abstraction for Instruction Tracing |
| |
Em Tue, Feb 10, 2015 at 02:31:56PM +0200, Adrian Hunter escreveu: > On 08/01/15 14:52, Adrian Hunter wrote: > > Hi > > > > Here is V4 of some more preparatory patches for Intel PT > > that introduce an abstraction for Instruction tracing. > > > > The master branch of the tree: > > > > git://git.infradead.org/users/ahunter/linux-perf.git > > > > contains these patches plus Intel PT and BTS and the kernel driver. > > > > Arnaldo, I was thinking of sending V5 (re-based plus a couple of small > changes) but there seem to be a number of large patch sets pending and I > also have the main Intel PT patches (25 patches), so I was wondering if you > have preferred order for handling them all?
> AFAICT Peter has accepted the Intel PT kernel driver but I don't know if it > will be in 3.20.
Wait a bit, I need to process a patchset from Jiri Olsa that touches the Makefiles, to pave the way for Kconfig usage in tools/perf/ and a few other bits, after that gets in, try again please.
- Arnaldo
> > > Changes in V4: > > > > perf tools: Add build option NO_ITRACE to exclude Instruction Tracing > > New patch > > > > Re-based on Arnaldo's perf/core branch: > > > > 3dd417d4010c8e141b0f32121cdc8d82aa4a9c6a > > perf tools: Remove some unused functions from color.c > > > > Changes in V3: > > > > perf tools: Add support for Instruction Trace recording > > Added evsel as a parameter to itrace_record__init > > > > perf record: Add basic Instruction Tracing support > > Moved the call to itrace_record__init after parse > > options so that evsel could be passed and the > > selected events used to determine what kind of > > Instruction Tracing to use e.g. Intel PT vs BTS > > > > Re-based on Arnaldo's perf/core branch: > > > > 41e950c033b7df997d4b38653efe6554be9b96a7 > > Merge tag 'perf-core-for-mingo' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/urgent > > > > Changes in V2: > > > > Dropped patches already applied. > > > > Re-based on Arnaldo's perf/core branch: > > > > a84808083688d82d7f1e5786ccf5df0ff7d448cb > > perf tools: Only override the default :tid comm entry > > > > > > 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 (23): > > 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 > > perf tools: Add build option NO_ITRACE to exclude Instruction Tracing > > > > 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 | 6 + > > tools/perf/builtin-buildid-list.c | 9 + > > tools/perf/builtin-inject.c | 172 +++- > > tools/perf/builtin-record.c | 186 ++++- > > tools/perf/builtin-report.c | 12 + > > tools/perf/builtin-script.c | 39 +- > > tools/perf/config/Makefile | 4 + > > tools/perf/perf.h | 2 + > > tools/perf/tests/make | 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 | 70 +- > > tools/perf/util/evlist.h | 6 + > > tools/perf/util/header.c | 36 + > > tools/perf/util/header.h | 1 + > > tools/perf/util/itrace.c | 1258 ++++++++++++++++++++++++++++++ > > tools/perf/util/itrace.h | 561 +++++++++++++ > > tools/perf/util/record.c | 11 +- > > tools/perf/util/session.c | 148 +++- > > tools/perf/util/session.h | 6 + > > tools/perf/util/tool.h | 10 +- > > 27 files changed, 2624 insertions(+), 46 deletions(-) > > create mode 100644 tools/perf/util/itrace.c > > create mode 100644 tools/perf/util/itrace.h > > > > > > Regards > > Adrian > > > >
| |