summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohn Baldwin <jhb@FreeBSD.org>2004-11-17 14:39:41 +0000
committerJohn Baldwin <jhb@FreeBSD.org>2004-11-17 14:39:41 +0000
commitd0b4135e008c4cf77e739fbb312c54316c49eecf (patch)
treee9ab4df063990b4fc389c2beaa81b19068ed2afb
parent8b099b734bce728538add2fed7f20da627f777a2 (diff)
Notes
-rw-r--r--sys/kern/kern_intr.c18
1 files changed, 6 insertions, 12 deletions
diff --git a/sys/kern/kern_intr.c b/sys/kern/kern_intr.c
index 1156883f546c..936cc304f04c 100644
--- a/sys/kern/kern_intr.c
+++ b/sys/kern/kern_intr.c
@@ -554,22 +554,14 @@ restart:
*
* If this interrupt source is currently storming,
* then throttle it to only fire the handler once
- * per clock tick. Each second we go out of storming
- * mode to see if the storm has subsided.
+ * per clock tick.
*
* If this interrupt source is not currently
* storming, but the number of back to back
* interrupts exceeds the storm threshold, then
* enter storming mode.
*/
- if (storming) {
- tsleep(&count, td->td_priority, "istorm", 1);
- if (count > hz) {
- storming = 0;
- count = 0;
- } else
- count++;
- } else if (intr_storm_threshold != 0 &&
+ if (!storming && intr_storm_threshold != 0 &&
count >= intr_storm_threshold) {
if (!warned) {
printf(
@@ -578,8 +570,10 @@ restart:
warned = 1;
}
storming = 1;
- count = 0;
- } else
+ }
+ if (storming)
+ tsleep(&count, td->td_priority, "istorm", 1);
+ else
count++;
if (ithd->it_enable != NULL)