|
@@ -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,9 @@ 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;
|