[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <tip-81cd60cc29a9c3e92ad6ca167a4764b2c2d2fc04@git.kernel.org>
Date: Fri, 21 Aug 2015 23:52:19 -0700
From: tip-bot for Adrian Hunter <tipbot@...or.com>
To: linux-tip-commits@...r.kernel.org
Cc: tglx@...utronix.de, jolsa@...hat.com, mingo@...nel.org,
linux-kernel@...r.kernel.org, acme@...hat.com, hpa@...or.com,
adrian.hunter@...el.com
Subject: [tip:perf/core] perf tools: Fix Intel PT timestamp handling
Commit-ID: 81cd60cc29a9c3e92ad6ca167a4764b2c2d2fc04
Gitweb: http://git.kernel.org/tip/81cd60cc29a9c3e92ad6ca167a4764b2c2d2fc04
Author: Adrian Hunter <adrian.hunter@...el.com>
AuthorDate: Thu, 20 Aug 2015 11:51:32 +0300
Committer: Arnaldo Carvalho de Melo <acme@...hat.com>
CommitDate: Fri, 21 Aug 2015 10:29:23 -0300
perf tools: Fix Intel PT timestamp handling
Events that don't sample the timestamp have a timestamp value of -1.
Intel PT processing wasn't taking that into account.
This is particularly noticeable with Intel BTS because timestamps are
not requested by default.
Then, if the conversion of -1 to TSC results in a small number, the
processing is unaffected.
However if the conversion results in a big number, then the data is
processed prematurely before relevant sideband data like mmap events,
which in turn results in samples with unknown dsos.
Commiter note:
Since BTS wasn't upstream, I split the patch to fold the BTS part with
the patch introducing it, to avoid having this bug in the commit
history. PT was already upstream, so this patch contains that part.
Signed-off-by: Adrian Hunter <adrian.hunter@...el.com>
Cc: Jiri Olsa <jolsa@...hat.com>
Link: http://lkml.kernel.org/r/1440060692-5585-1-git-send-email-adrian.hunter@intel.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@...hat.com>
---
tools/perf/util/intel-pt.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/tools/perf/util/intel-pt.c b/tools/perf/util/intel-pt.c
index 2a4a412..a5acd2f 100644
--- a/tools/perf/util/intel-pt.c
+++ b/tools/perf/util/intel-pt.c
@@ -1450,7 +1450,7 @@ static int intel_pt_process_event(struct perf_session *session,
return -EINVAL;
}
- if (sample->time)
+ if (sample->time && sample->time != (u64)-1)
timestamp = perf_time_to_tsc(sample->time, &pt->tc);
else
timestamp = 0;
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists