Update the shadow timestamp before start event. .add might use the timestamp.
Cc: Peter Zijlstra <pet...@infradead.org> Cc: Andy Lutomirski <l...@amacapital.net> Cc: Ingo Molnar <mi...@kernel.org> Signed-off-by: Shaohua Li <s...@fb.com> --- kernel/events/core.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/kernel/events/core.c b/kernel/events/core.c index 882f835..4edde3e 100644 --- a/kernel/events/core.c +++ b/kernel/events/core.c @@ -1769,6 +1769,10 @@ event_sched_in(struct perf_event *event, perf_pmu_disable(event->pmu); + event->tstamp_running += tstamp - event->tstamp_stopped; + + perf_set_shadow_time(event, ctx, tstamp); + if (event->pmu->add(event, PERF_EF_START)) { event->state = PERF_EVENT_STATE_INACTIVE; event->oncpu = -1; @@ -1776,10 +1780,6 @@ event_sched_in(struct perf_event *event, goto out; } - event->tstamp_running += tstamp - event->tstamp_stopped; - - perf_set_shadow_time(event, ctx, tstamp); - if (!is_software_event(event)) cpuctx->active_oncpu++; ctx->nr_active++; -- 1.8.1 -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/