All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] perf tools: Do not fail on processing out of order event
@ 2014-11-26 15:39 Jiri Olsa
  2014-11-26 15:44 ` Arnaldo Carvalho de Melo
                   ` (2 more replies)
  0 siblings, 3 replies; 12+ messages in thread
From: Jiri Olsa @ 2014-11-26 15:39 UTC (permalink / raw)
  To: linux-kernel
  Cc: Jiri Olsa, Linus Torvalds, Andi Kleen, Corey Ashford,
	David Ahern, Frederic Weisbecker, Ingo Molnar, Matt Fleming,
	Namhyung Kim, Paul Mackerras, Peter Zijlstra, Stephane Eranian,
	Arnaldo Carvalho de Melo

Linus reported perf report command being interrupted due to
processing of 'out of order' event, with following error:

  Timestamp below last timeslice flush
  0x5733a8 [0x28]: failed to process type: 3

I could reproduce the issue and in my case it was caused by one
CPU (mmap) being behind during record and userspace mmap reader
seeing the data after other CPUs data were already stored.

It'd be nice to find the source of this hiccup, meanwhile I'm
submitting change that does not kill the processing, but only
tracks the number of out of order events and warn user.

Reported-by: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Andi Kleen <ak@linux.intel.com>
Cc: Corey Ashford <cjashfor@linux.vnet.ibm.com>
Cc: David Ahern <dsahern@gmail.com>
Cc: Frederic Weisbecker <fweisbec@gmail.com>
Cc: Ingo Molnar <mingo@kernel.org>
Cc: Matt Fleming <matt.fleming@intel.com>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Paul Mackerras <paulus@samba.org>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Cc: Stephane Eranian <eranian@google.com>
Cc: Arnaldo Carvalho de Melo <acme@redhat.com>
Signed-off-by: Jiri Olsa <jolsa@kernel.org>
---
 tools/perf/util/event.h   |  1 +
 tools/perf/util/session.c | 13 +++++++------
 2 files changed, 8 insertions(+), 6 deletions(-)

diff --git a/tools/perf/util/event.h b/tools/perf/util/event.h
index 09b9e8d3fcf7..c4ffe2bd0738 100644
--- a/tools/perf/util/event.h
+++ b/tools/perf/util/event.h
@@ -242,6 +242,7 @@ struct events_stats {
 	u32 nr_invalid_chains;
 	u32 nr_unknown_id;
 	u32 nr_unprocessable_samples;
+	u32 nr_unordered_events;
 };
 
 struct attr_event {
diff --git a/tools/perf/util/session.c b/tools/perf/util/session.c
index 6ac62ae6b8fa..17a85f527bfc 100644
--- a/tools/perf/util/session.c
+++ b/tools/perf/util/session.c
@@ -533,15 +533,11 @@ int perf_session_queue_event(struct perf_session *s, union perf_event *event,
 		return -ETIME;
 
 	if (timestamp < oe->last_flush) {
-		WARN_ONCE(1, "Timestamp below last timeslice flush\n");
-
-		pr_oe_time(timestamp,      "out of order event");
+		pr_oe_time(timestamp,      "out of order event\n");
 		pr_oe_time(oe->last_flush, "last flush, last_flush_type %d\n",
 			   oe->last_flush_type);
 
-		/* We could get out of order messages after forced flush. */
-		if (oe->last_flush_type != OE_FLUSH__HALF)
-			return -EINVAL;
+		s->stats.nr_unordered_events++;
 	}
 
 	new = ordered_events__new(oe, timestamp, event);
@@ -1118,6 +1114,11 @@ static void perf_session__warn_about_errors(const struct perf_session *session,
 			    "Do you have a KVM guest running and not using 'perf kvm'?\n",
 			    session->stats.nr_unprocessable_samples);
 	}
+
+	if (session->stats.nr_unordered_events != 0) {
+		ui__warning("%u out of order events recorded.\n",
+			    session->stats.nr_unordered_events);
+	}
 }
 
 volatile int session_done;
-- 
1.9.3


^ permalink raw reply related	[flat|nested] 12+ messages in thread

end of thread, other threads:[~2014-12-09 10:17 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-11-26 15:39 [PATCH] perf tools: Do not fail on processing out of order event Jiri Olsa
2014-11-26 15:44 ` Arnaldo Carvalho de Melo
2014-11-27 10:56   ` Ingo Molnar
2014-11-27 12:54     ` Jiri Olsa
2014-11-27 13:54       ` Arnaldo Carvalho de Melo
2014-11-27 13:53     ` Arnaldo Carvalho de Melo
2014-11-27 14:07       ` Jiri Olsa
2014-11-27 14:16         ` Arnaldo Carvalho de Melo
2014-11-27 14:23           ` Jiri Olsa
2014-11-27 14:45             ` Arnaldo Carvalho de Melo
2014-11-27 19:44 ` Andi Kleen
2014-12-09 10:16 ` [tip:perf/urgent] perf session: " tip-bot for Jiri Olsa

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.