netdev
[Top] [All Lists]

[patch] auto-limiting IRQ load take #2, irq-rewrite-2.4.11-F4

To: Linus Torvalds <torvalds@xxxxxxxxxxxxx>
Subject: [patch] auto-limiting IRQ load take #2, irq-rewrite-2.4.11-F4
From: Ingo Molnar <mingo@xxxxxxx>
Date: Wed, 3 Oct 2001 16:51:47 +0200 (CEST)
Cc: <linux-kernel@xxxxxxxxxxxxxxx>, Alan Cox <alan@xxxxxxxxxxxxxxxxxxx>, Arjan van de Ven <arjanv@xxxxxxxxxx>, Alexey Kuznetsov <kuznet@xxxxxxxxxxxxx>, <netdev@xxxxxxxxxxx>
In-reply-to: <Pine.LNX.4.33.0110022122310.2328-101000@xxxxxxxxxxxxxxxxxxxxx>
Reply-to: <mingo@xxxxxxx>
Sender: owner-netdev@xxxxxxxxxxx
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

Attachment: irq-rewrite-2.4.11-F4.bz2
Description: BZip2 compressed data

<Prev in Thread] Current Thread [Next in Thread>