diff options
author | Peter Zijlstra <[email protected]> | 2017-02-15 16:12:20 +0100 |
---|---|---|
committer | Ingo Molnar <[email protected]> | 2017-02-24 08:56:32 +0100 |
commit | 7bbba0eb1af34694868d028b80475981f90e6bee (patch) | |
tree | 21d4b930cf7ce4bb2e0c8a5dc0979b54364808ca | |
parent | 279b5165ffadf57e2596e0ad438cb9b69b76f320 (diff) |
perf/core: Fix perf_event_enable_on_exec() timekeeping (again)
Where commit:
7fce250915ef ("perf: Fix scaling vs. perf_event_enable_on_exec()")
disabled the ctx-time a-priory, such that all events get enabled and
scheduled at the time point in time, there is one hole in that patch,
when no events do get enabled nothing re-enables the ctx-time.
Reported-by: Ravi Bangoria <[email protected]>
Reported-by: Anton Blanchard <[email protected]>
Signed-off-by: Peter Zijlstra (Intel) <[email protected]>
Cc: Alexander Shishkin <[email protected]>
Cc: Arnaldo Carvalho de Melo <[email protected]>
Cc: Jiri Olsa <[email protected]>
Cc: Linus Torvalds <[email protected]>
Cc: Oleg Nesterov <[email protected]>
Cc: Peter Zijlstra <[email protected]>
Cc: Stephane Eranian <[email protected]>
Cc: Thomas Gleixner <[email protected]>
Cc: Vince Weaver <[email protected]>
Fixes: 7fce250915ef ("perf: Fix scaling vs. perf_event_enable_on_exec()")
Signed-off-by: Ingo Molnar <[email protected]>
-rw-r--r-- | kernel/events/core.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/kernel/events/core.c b/kernel/events/core.c index 94d7b9aae925..d4e3f8d8238b 100644 --- a/kernel/events/core.c +++ b/kernel/events/core.c @@ -3522,6 +3522,8 @@ static void perf_event_enable_on_exec(int ctxn) if (enabled) { clone_ctx = unclone_ctx(ctx); ctx_resched(cpuctx, ctx, event_type); + } else { + ctx_sched_in(ctx, cpuctx, EVENT_TIME, current); } perf_ctx_unlock(cpuctx, ctx); |