[tip:perf/urgent] perf, x86: Fix handle_irq return values

Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]
From: tip-bot for Peter Zijlstra
Date: Friday, August 20, 2010 - 7:17 am

Commit-ID:  4a31bebe71ab2e4f6ecd6e5f9f2ac9f0ff38ff76
Gitweb:     http://git.kernel.org/tip/4a31bebe71ab2e4f6ecd6e5f9f2ac9f0ff38ff76
Author:     Peter Zijlstra <a.p.zijlstra@chello.nl>
AuthorDate: Thu, 19 Aug 2010 16:28:00 +0200
Committer:  Ingo Molnar <mingo@elte.hu>
CommitDate: Fri, 20 Aug 2010 15:00:06 +0200

perf, x86: Fix handle_irq return values

Now that we rely on the number of handled overflows, ensure all handle_irq
implementations actually return the right number.

Signed-off-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
Tested-by: Don Zickus <dzickus@redhat.com>
LKML-Reference: <1282228033.2605.204.camel@laptop>
---
 arch/x86/kernel/cpu/perf_event_intel.c |    9 +++++++--
 arch/x86/kernel/cpu/perf_event_p4.c    |    2 +-
 2 files changed, 8 insertions(+), 3 deletions(-)

diff --git a/arch/x86/kernel/cpu/perf_event_intel.c b/arch/x86/kernel/cpu/perf_event_intel.c
index d8d86d0..4539b4b 100644
--- a/arch/x86/kernel/cpu/perf_event_intel.c
+++ b/arch/x86/kernel/cpu/perf_event_intel.c
@@ -713,6 +713,7 @@ static int intel_pmu_handle_irq(struct pt_regs *regs)
 	struct cpu_hw_events *cpuc;
 	int bit, loops;
 	u64 ack, status;
+	int handled = 0;
 
 	perf_sample_data_init(&data, 0);
 
@@ -743,12 +744,16 @@ again:
 	/*
 	 * PEBS overflow sets bit 62 in the global status register
 	 */
-	if (__test_and_clear_bit(62, (unsigned long *)&status))
+	if (__test_and_clear_bit(62, (unsigned long *)&status)) {
+		handled++;
 		x86_pmu.drain_pebs(regs);
+	}
 
 	for_each_set_bit(bit, (unsigned long *)&status, X86_PMC_IDX_MAX) {
 		struct perf_event *event = cpuc->events[bit];
 
+		handled++;
+
 		if (!test_bit(bit, cpuc->active_mask))
 			continue;
 
@@ -772,7 +777,7 @@ again:
 
 done:
 	intel_pmu_enable_all(0);
-	return 1;
+	return handled;
 }
 
 static struct event_constraint *
diff --git a/arch/x86/kernel/cpu/perf_event_p4.c b/arch/x86/kernel/cpu/perf_event_p4.c
index febb12c..d470c91 100644
--- a/arch/x86/kernel/cpu/perf_event_p4.c
+++ b/arch/x86/kernel/cpu/perf_event_p4.c
@@ -690,7 +690,7 @@ static int p4_pmu_handle_irq(struct pt_regs *regs)
 		inc_irq_stat(apic_perf_irqs);
 	}
 
-	return handled > 0;
+	return handled;
 }
 
 /*
--
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]

Messages in current thread:
A question of perf NMI handler, Lin Ming, (Wed Aug 4, 2:21 am)
Re: A question of perf NMI handler, Peter Zijlstra, (Wed Aug 4, 2:50 am)
Re: A question of perf NMI handler, Robert Richter, (Wed Aug 4, 3:01 am)
Re: A question of perf NMI handler, Peter Zijlstra, (Wed Aug 4, 3:24 am)
Re: A question of perf NMI handler, Robert Richter, (Wed Aug 4, 3:29 am)
Re: A question of perf NMI handler, Don Zickus, (Wed Aug 4, 6:54 am)
Re: A question of perf NMI handler, Don Zickus, (Wed Aug 4, 7:00 am)
Re: A question of perf NMI handler, Peter Zijlstra, (Wed Aug 4, 7:11 am)
Re: A question of perf NMI handler, Don Zickus, (Wed Aug 4, 7:52 am)
Re: A question of perf NMI handler, Peter Zijlstra, (Wed Aug 4, 8:02 am)
Re: A question of perf NMI handler, Cyrill Gorcunov, (Wed Aug 4, 8:18 am)
Re: A question of perf NMI handler, Don Zickus, (Wed Aug 4, 8:45 am)
Re: A question of perf NMI handler, Don Zickus, (Wed Aug 4, 8:50 am)
Re: A question of perf NMI handler, Cyrill Gorcunov, (Wed Aug 4, 9:10 am)
Re: A question of perf NMI handler, Don Zickus, (Wed Aug 4, 9:20 am)
Re: A question of perf NMI handler, Cyrill Gorcunov, (Wed Aug 4, 9:39 am)
Re: A question of perf NMI handler, Robert Richter, (Wed Aug 4, 11:48 am)
Re: A question of perf NMI handler, Andi Kleen, (Wed Aug 4, 12:22 pm)
Re: A question of perf NMI handler, Cyrill Gorcunov, (Wed Aug 4, 12:26 pm)
Re: A question of perf NMI handler, Robert Richter, (Thu Aug 5, 11:52 pm)
Re: A question of perf NMI handler, Don Zickus, (Fri Aug 6, 7:21 am)
Re: A question of perf NMI handler, Andi Kleen, (Fri Aug 6, 8:35 am)
Re: A question of perf NMI handler, Andi Kleen, (Fri Aug 6, 8:37 am)
Re: [PATCH] perf, x86: try to handle unknown nmis with run ..., Frederic Weisbecker, (Tue Aug 10, 7:44 pm)
Re: [PATCH -v2] perf, x86: try to handle unknown nmis with ..., Frederic Weisbecker, (Thu Aug 12, 9:25 pm)
Re: [PATCH] perf, x86: try to handle unknown nmis with run ..., Frederic Weisbecker, (Thu Aug 12, 9:37 pm)
Re: [PATCH] perf, x86: try to handle unknown nmis with run ..., Frederic Weisbecker, (Fri Aug 13, 6:28 pm)
[tip:perf/urgent] perf, x86: Try to handle unknown nmis wi ..., tip-bot for Robert R ..., (Fri Aug 20, 7:17 am)
[tip:perf/urgent] perf, x86: Fix handle_irq return values, tip-bot for Peter Zi ..., (Fri Aug 20, 7:17 am)