aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSoeren Sandmann <sandmann@daimi.au.dk>2009-10-22 12:34:08 -0400
committerIngo Molnar <mingo@elte.hu>2009-10-23 03:35:02 -0400
commit54f4407608c59712a8f5ec1e10dfac40bef5a2e7 (patch)
tree78ab139c78b084d597c3a198b0b713b89ce23da5
parent721a669b7225edeeb0ca8e2bf71b83882326a71b (diff)
perf events: Don't generate events for the idle task when exclude_idle is set
Getting samples for the idle task is often not interesting, so don't generate them when exclude_idle is set for the event in question. Signed-off-by: Søren Sandmann Pedersen <sandmann@redhat.com> Cc: Peter Zijlstra <a.p.zijlstra@chello.nl> Cc: Mike Galbraith <efault@gmx.de> Cc: Paul Mackerras <paulus@samba.org> Cc: Arnaldo Carvalho de Melo <acme@redhat.com> Cc: Frederic Weisbecker <fweisbec@gmail.com> Cc: Steven Rostedt <rostedt@goodmis.org> LKML-Reference: <ye8pr8fmlq7.fsf@camel16.daimi.au.dk> Signed-off-by: Ingo Molnar <mingo@elte.hu>
-rw-r--r--kernel/perf_event.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/kernel/perf_event.c b/kernel/perf_event.c
index 33ff019f9aa6..7f29643c8985 100644
--- a/kernel/perf_event.c
+++ b/kernel/perf_event.c
@@ -3959,8 +3959,9 @@ static enum hrtimer_restart perf_swevent_hrtimer(struct hrtimer *hrtimer)
3959 regs = task_pt_regs(current); 3959 regs = task_pt_regs(current);
3960 3960
3961 if (regs) { 3961 if (regs) {
3962 if (perf_event_overflow(event, 0, &data, regs)) 3962 if (!(event->attr.exclude_idle && current->pid == 0))
3963 ret = HRTIMER_NORESTART; 3963 if (perf_event_overflow(event, 0, &data, regs))
3964 ret = HRTIMER_NORESTART;
3964 } 3965 }
3965 3966
3966 period = max_t(u64, 10000, event->hw.sample_period); 3967 period = max_t(u64, 10000, event->hw.sample_period);