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);
                            "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;