aboutsummaryrefslogtreecommitdiffstats
path: root/tools
diff options
context:
space:
mode:
authorAdrian Hunter <adrian.hunter@intel.com>2018-11-05 02:35:04 -0500
committerArnaldo Carvalho de Melo <acme@redhat.com>2018-11-05 12:53:37 -0500
commit93f8be2799515e01647c5a9b0d17a90a00ebcf82 (patch)
treec0b9f804abfe60bd167c2f49a0816513d053d652 /tools
parent35fa1cee21e34f43db928d022610707d5a234faf (diff)
perf intel-pt: Add more event information to debug log
More event information is useful for debugging, especially MMAP events. Signed-off-by: Adrian Hunter <adrian.hunter@intel.com> Link: http://lkml.kernel.org/r/20181105073505.8129-2-adrian.hunter@intel.com Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Diffstat (limited to 'tools')
-rw-r--r--tools/perf/util/intel-pt-decoder/intel-pt-log.c5
-rw-r--r--tools/perf/util/intel-pt-decoder/intel-pt-log.h1
-rw-r--r--tools/perf/util/intel-pt.c16
3 files changed, 19 insertions, 3 deletions
diff --git a/tools/perf/util/intel-pt-decoder/intel-pt-log.c b/tools/perf/util/intel-pt-decoder/intel-pt-log.c
index e02bc7b166a0..5e64da270f97 100644
--- a/tools/perf/util/intel-pt-decoder/intel-pt-log.c
+++ b/tools/perf/util/intel-pt-decoder/intel-pt-log.c
@@ -31,6 +31,11 @@ static FILE *f;
31static char log_name[MAX_LOG_NAME]; 31static char log_name[MAX_LOG_NAME];
32bool intel_pt_enable_logging; 32bool intel_pt_enable_logging;
33 33
34void *intel_pt_log_fp(void)
35{
36 return f;
37}
38
34void intel_pt_log_enable(void) 39void intel_pt_log_enable(void)
35{ 40{
36 intel_pt_enable_logging = true; 41 intel_pt_enable_logging = true;
diff --git a/tools/perf/util/intel-pt-decoder/intel-pt-log.h b/tools/perf/util/intel-pt-decoder/intel-pt-log.h
index 45b64f93f358..cc084937f701 100644
--- a/tools/perf/util/intel-pt-decoder/intel-pt-log.h
+++ b/tools/perf/util/intel-pt-decoder/intel-pt-log.h
@@ -22,6 +22,7 @@
22 22
23struct intel_pt_pkt; 23struct intel_pt_pkt;
24 24
25void *intel_pt_log_fp(void);
25void intel_pt_log_enable(void); 26void intel_pt_log_enable(void);
26void intel_pt_log_disable(void); 27void intel_pt_log_disable(void);
27void intel_pt_log_set_name(const char *name); 28void intel_pt_log_set_name(const char *name);
diff --git a/tools/perf/util/intel-pt.c b/tools/perf/util/intel-pt.c
index 86cc9a64e982..149ff361ca78 100644
--- a/tools/perf/util/intel-pt.c
+++ b/tools/perf/util/intel-pt.c
@@ -206,6 +206,16 @@ static void intel_pt_dump_event(struct intel_pt *pt, unsigned char *buf,
206 intel_pt_dump(pt, buf, len); 206 intel_pt_dump(pt, buf, len);
207} 207}
208 208
209static void intel_pt_log_event(union perf_event *event)
210{
211 FILE *f = intel_pt_log_fp();
212
213 if (!intel_pt_enable_logging || !f)
214 return;
215
216 perf_event__fprintf(event, f);
217}
218
209static int intel_pt_do_fix_overlap(struct intel_pt *pt, struct auxtrace_buffer *a, 219static int intel_pt_do_fix_overlap(struct intel_pt *pt, struct auxtrace_buffer *a,
210 struct auxtrace_buffer *b) 220 struct auxtrace_buffer *b)
211{ 221{
@@ -2010,9 +2020,9 @@ static int intel_pt_process_event(struct perf_session *session,
2010 event->header.type == PERF_RECORD_SWITCH_CPU_WIDE) 2020 event->header.type == PERF_RECORD_SWITCH_CPU_WIDE)
2011 err = intel_pt_context_switch(pt, event, sample); 2021 err = intel_pt_context_switch(pt, event, sample);
2012 2022
2013 intel_pt_log("event %s (%u): cpu %d time %"PRIu64" tsc %#"PRIx64"\n", 2023 intel_pt_log("event %u: cpu %d time %"PRIu64" tsc %#"PRIx64" ",
2014 perf_event__name(event->header.type), event->header.type, 2024 event->header.type, sample->cpu, sample->time, timestamp);
2015 sample->cpu, sample->time, timestamp); 2025 intel_pt_log_event(event);
2016 2026
2017 return err; 2027 return err;
2018} 2028}