lkml.org 
[lkml]   [2002]   [Oct]   [29]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
Date
From
Subject[PATCH] fix oprofile multiple counters

Linus, the below ensures we deal properly with multiple perfctr overflow
interrupts under high load.

Please apply

thanks
john


diff -Naur -X dontdiff linux-linus/arch/i386/oprofile/op_model_athlon.c linux/arch/i386/oprofile/op_model_athlon.c
--- linux-linus/arch/i386/oprofile/op_model_athlon.c Wed Oct 16 19:08:39 2002
+++ linux/arch/i386/oprofile/op_model_athlon.c Thu Oct 24 02:10:26 2002
@@ -95,17 +95,16 @@
struct pt_regs * const regs)
{
unsigned int low, high;
- int handled = 0;
int i;
for (i = 0 ; i < NUM_COUNTERS; ++i) {
CTR_READ(low, high, msrs, i);
if (CTR_OVERFLOWED(low)) {
oprofile_add_sample(regs->eip, i, cpu);
CTR_WRITE(reset_value[i], msrs, i);
- handled = 1;
+ return 1;
}
}
- return handled;
+ return 0;
}


diff -Naur -X dontdiff linux-linus/arch/i386/oprofile/op_model_ppro.c linux/arch/i386/oprofile/op_model_ppro.c
--- linux-linus/arch/i386/oprofile/op_model_ppro.c Wed Oct 16 19:08:39 2002
+++ linux/arch/i386/oprofile/op_model_ppro.c Thu Oct 24 02:10:42 2002
@@ -90,17 +90,16 @@
{
unsigned int low, high;
int i;
- int handled = 0;

for (i = 0 ; i < NUM_COUNTERS; ++i) {
CTR_READ(low, high, msrs, i);
if (CTR_OVERFLOWED(low)) {
oprofile_add_sample(regs->eip, i, cpu);
CTR_WRITE(reset_value[i], msrs, i);
- handled = 1;
+ return 1;
}
}
- return handled;
+ return 0;
}


-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
\
 
 \ /
  Last update: 2005-03-22 13:30    [W:0.054 / U:0.200 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site