linux/tools/perf/arch
Adrian Hunter b45fc0bfaf perf tools: Add Intel PT support for using MTC packets
MTC packets are a new Intel PT feature.

MTC packets provide finer grain timestamp information than TSC packets.

Support for this feature is indicated by:

  /sys/bus/event_source/devices/intel_pt/caps/mtc

which contains "1" if the feature is supported and "0" otherwise.

MTC packets can be requested using a PMU config term e.g. perf record -e
intel_pt/mtc/u sleep 1

The frequency of MTC packets can also be specified.  e.g. perf record -e
intel_pt/mtc,mtc_period=2/u sleep 1

The default value is 3 or the nearest lower value that is supported.  0
is always supported.

Valid values are given by:

/sys/bus/event_source/devices/intel_pt/caps/mtc_periods

which contains a hexadecimal value, the bits of which represent valid
values e.g. bit 2 set means value 2 is valid.

The value is converted to the MTC frequency as:

	CTC-frequency / (2 ^ value)

e.g. value 3 means one eighth of CTC-frequency

Where CTC is the hardware crystal clock, the frequency of which can be
related to TSC via values provided in cpuid leaf 0x15.

If an invalid value is entered, the error message will give a list of
valid values e.g.

	$ perf record -e intel_pt/mtc_period=15/u uname
	Invalid mtc_period for intel_pt. Valid values are: 0,3,6,9

tools/perf/Documentation/intel-pt.txt is updated in a later patch as
there are a number of new features being added.

For more information refer to the June 2015 or later Intel 64 and IA-32
Architectures SDM Chapter 36 Intel Processor Trace.

Signed-off-by: Adrian Hunter <adrian.hunter@intel.com>
Cc: Jiri Olsa <jolsa@redhat.com>
Link: http://lkml.kernel.org/r/1437150840-31811-22-git-send-email-adrian.hunter@intel.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
2015-08-24 17:48:06 -03:00
..
alpha perf tools: Add empty Build files for architectures lacking them 2015-08-06 16:24:15 -03:00
arm perf build: Add arch arm objects building 2015-02-12 13:13:01 -03:00
arm64 perf tools: Add ARM64 perf_regs_load to support libunwind and enable testing 2015-05-29 12:43:40 -03:00
mips perf tools: Add empty Build files for architectures lacking them 2015-08-06 16:24:15 -03:00
parisc perf tools: Add empty Build files for architectures lacking them 2015-08-06 16:24:15 -03:00
powerpc perf probe ppc64le: Fixup function entry if using kallsyms lookup 2015-05-04 12:43:47 -03:00
s390 perf build: Add arch s390 objects building 2015-02-12 13:20:59 -03:00
sh perf build: Add arch sh objects building 2015-02-12 13:21:31 -03:00
sparc perf build: Add arch sparc objects building 2015-02-12 13:22:01 -03:00
x86 perf tools: Add Intel PT support for using MTC packets 2015-08-24 17:48:06 -03:00
xtensa perf tools xtensa: Add DWARF register names 2015-08-06 16:45:05 -03:00
Build perf build: Add arch x86 objects building 2015-02-12 13:12:01 -03:00
common.c perf tools: Assign default value for some pointers 2015-05-27 12:21:45 -03:00
common.h perf tools: Try to find cross-built objdump path 2012-10-24 14:20:11 -02:00