perf: Don't schedule out/in pinned events on task tick
Frederic Weisbecker [Sun, 17 Jan 2010 11:15:31 +0000 (12:15 +0100)]
We don't need to schedule in/out pinned events on task tick,
now that pinned and flexible groups can be scheduled separately.

Signed-off-by: Frederic Weisbecker <fweisbec@gmail.com>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Paul Mackerras <paulus@samba.org>
Cc: Ingo Molnar <mingo@elte.hu>
Cc: Arnaldo Carvalho de Melo <acme@infradead.org>

kernel/perf_event.c

index bfc4ee0..a90ae69 100644 (file)
@@ -1525,17 +1525,17 @@ void perf_event_task_tick(struct task_struct *curr)
        if (ctx)
                perf_ctx_adjust_freq(ctx);
 
-       cpu_ctx_sched_out(cpuctx, EVENT_ALL);
+       cpu_ctx_sched_out(cpuctx, EVENT_FLEXIBLE);
        if (ctx)
-               task_ctx_sched_out(ctx, EVENT_ALL);
+               task_ctx_sched_out(ctx, EVENT_FLEXIBLE);
 
        rotate_ctx(&cpuctx->ctx);
        if (ctx)
                rotate_ctx(ctx);
 
-       cpu_ctx_sched_in(cpuctx, EVENT_ALL);
+       cpu_ctx_sched_in(cpuctx, EVENT_FLEXIBLE);
        if (ctx)
-               task_ctx_sched_in(curr, EVENT_ALL);
+               task_ctx_sched_in(curr, EVENT_FLEXIBLE);
 }
 
 static int event_enable_on_exec(struct perf_event *event,