Messages in this thread |  | | Date | Wed, 3 Oct 2001 16:51:47 +0200 (CEST) | From | Ingo Molnar <> | Subject | [patch] auto-limiting IRQ load take #2, irq-rewrite-2.4.11-F4 |
| |
the attached patch contains a cleaned up version of IRQ auto-mitigation.
- i've removed the max_rate limit and have streamlined the impact of the load-estimator on do_IRQ() to this piece of code:
desc->total_contexts++; if (unlikely(in_interrupt())) goto mitigate_irqload;
i dont think we can get much cheaper than this. (We could perhaps avoid the total_contexts counter by saving a 'snapshot' of the existing kstat.irqs array of counters in every timer tick and comparing the snapshot to the current kstat.irqs values. That looked pretty unclean though.)
- the per-cpu irq counting in -D9 was incorrect as it collapsed all irq handlers into a single counter.
- i've removed the net-polling hacks - they are unrelated to this problem.
the patch is against 2.4.11-pre2. (the eepro100.c fixes from the -ac tree are already included in -pre2, i only included them in this patch to make patching & testing against 2.4.10 easier.).
(i'd like to stress the point again that the goal of this approach is *not* to be nice. This is an airbag mechanizm, it can and will hurt performance. But my box does not lock up anymore.)
Ingo [unhandled content-type:application/x-bzip2]
|  |