aboutsummaryrefslogtreecommitdiffstats
path: root/tools/perf
diff options
context:
space:
mode:
authorAdrian Hunter <adrian.hunter@intel.com>2015-07-17 12:33:59 -0400
committerArnaldo Carvalho de Melo <acme@redhat.com>2015-08-24 16:50:23 -0400
commit7eacca3ebb03a4ee7bb41284aafeb19a54242621 (patch)
tree91dfc310f808ae52c696239aff5bdc0c87102707 /tools/perf
parent0de802abd14abdf8cbbba28b421a1a00fa0939d5 (diff)
perf tools: Add Intel PT support for decoding TRACESTOP packets
A TRACESTOP packet is produced when an Intel PT trace enters a defined region of the address space at which point the tracing stops. This patch just adds decoder support. Support for specifying TRACESTOP regions is left until later. For details 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-25-git-send-email-adrian.hunter@intel.com Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Diffstat (limited to 'tools/perf')
-rw-r--r--tools/perf/util/intel-pt-decoder/intel-pt-decoder.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/tools/perf/util/intel-pt-decoder/intel-pt-decoder.c b/tools/perf/util/intel-pt-decoder/intel-pt-decoder.c
index 0845c5e6ad1d..22ba50224319 100644
--- a/tools/perf/util/intel-pt-decoder/intel-pt-decoder.c
+++ b/tools/perf/util/intel-pt-decoder/intel-pt-decoder.c
@@ -1572,6 +1572,10 @@ next:
1572 return intel_pt_walk_fup_tip(decoder); 1572 return intel_pt_walk_fup_tip(decoder);
1573 1573
1574 case INTEL_PT_TRACESTOP: 1574 case INTEL_PT_TRACESTOP:
1575 decoder->pge = false;
1576 decoder->continuous_period = false;
1577 intel_pt_clear_tx_flags(decoder);
1578 decoder->have_tma = false;
1575 break; 1579 break;
1576 1580
1577 case INTEL_PT_PSB: 1581 case INTEL_PT_PSB:
@@ -1717,6 +1721,9 @@ static int intel_pt_walk_psb(struct intel_pt_decoder *decoder)
1717 break; 1721 break;
1718 1722
1719 case INTEL_PT_TRACESTOP: 1723 case INTEL_PT_TRACESTOP:
1724 decoder->pge = false;
1725 decoder->continuous_period = false;
1726 intel_pt_clear_tx_flags(decoder);
1720 case INTEL_PT_TNT: 1727 case INTEL_PT_TNT:
1721 decoder->have_tma = false; 1728 decoder->have_tma = false;
1722 intel_pt_log("ERROR: Unexpected packet\n"); 1729 intel_pt_log("ERROR: Unexpected packet\n");
@@ -1819,6 +1826,10 @@ static int intel_pt_walk_to_ip(struct intel_pt_decoder *decoder)
1819 return intel_pt_bug(decoder); 1826 return intel_pt_bug(decoder);
1820 1827
1821 case INTEL_PT_TRACESTOP: 1828 case INTEL_PT_TRACESTOP:
1829 decoder->pge = false;
1830 decoder->continuous_period = false;
1831 intel_pt_clear_tx_flags(decoder);
1832 decoder->have_tma = false;
1822 break; 1833 break;
1823 1834
1824 case INTEL_PT_PSB: 1835 case INTEL_PT_PSB: