public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* [patch] auto-limiting IRQ load take #2, irq-rewrite-2.4.11-F4
  2001-10-02 20:34 [patch] auto-limiting IRQ load, IRQ-polling, irq-rewrite-2.4.11-D9 Ingo Molnar
@ 2001-10-03 14:51 ` Ingo Molnar
  2001-10-03 15:16   ` jamal
  0 siblings, 1 reply; 4+ messages in thread
From: Ingo Molnar @ 2001-10-03 14:51 UTC (permalink / raw)
  To: Linus Torvalds
  Cc: linux-kernel, Alan Cox, Arjan van de Ven, Alexey Kuznetsov,
	netdev

[-- Attachment #1: Type: TEXT/PLAIN, Size: 1178 bytes --]


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 #2: Type: APPLICATION/x-bzip2, Size: 10395 bytes --]

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [patch] auto-limiting IRQ load take #2, irq-rewrite-2.4.11-F4
  2001-10-03 14:51 ` [patch] auto-limiting IRQ load take #2, irq-rewrite-2.4.11-F4 Ingo Molnar
@ 2001-10-03 15:16   ` jamal
  2001-10-03 16:51     ` Rik van Riel
  0 siblings, 1 reply; 4+ messages in thread
From: jamal @ 2001-10-03 15:16 UTC (permalink / raw)
  To: Ingo Molnar
  Cc: Linus Torvalds, linux-kernel, Alan Cox, Arjan van de Ven,
	Alexey Kuznetsov, netdev



Your approach is still wrong. Please do not accept this patch.

cheers,
jamal

On Wed, 3 Oct 2001, Ingo Molnar wrote:

>
> 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
>


^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [patch] auto-limiting IRQ load take #2, irq-rewrite-2.4.11-F4
@ 2001-10-03 16:23 Manfred Spraul
  0 siblings, 0 replies; 4+ messages in thread
From: Manfred Spraul @ 2001-10-03 16:23 UTC (permalink / raw)
  To: Ingo Molnar; +Cc: linux-kernel, jamal

On Wed, 3 Oct 2001, Ingo Molnar wrote:
>
> the attached patch contains a cleaned up version of IRQ
> auto-mitigation.
>

What's the purpose of the patch?
Should it enable itself under load, or is it an emergency switch if a
broken driver (or broken hardware) causes an IRQ storm that makes the
computer unusable?

As an emergency switch it's a good idea.
But it should never enable itself unless the box is nearly dead, and it
can't replace NAPI and interrupt mitigation.

> (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.)
>
Ok, then I like the patch.

--
    Manfred




^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [patch] auto-limiting IRQ load take #2, irq-rewrite-2.4.11-F4
  2001-10-03 15:16   ` jamal
@ 2001-10-03 16:51     ` Rik van Riel
  0 siblings, 0 replies; 4+ messages in thread
From: Rik van Riel @ 2001-10-03 16:51 UTC (permalink / raw)
  To: jamal
  Cc: Ingo Molnar, Linus Torvalds, linux-kernel, Alan Cox,
	Arjan van de Ven, Alexey Kuznetsov, netdev

On Wed, 3 Oct 2001, jamal wrote:

> Your approach is still wrong. Please do not accept this patch.

I rather like the fact that Ingo's approach will keep the
system alive regardless of what driver is used.

Rik
-- 
DMCA, SSSCA, W3C?  Who cares?  http://thefreeworld.net/  (volunteers needed)

http://www.surriel.com/		http://distro.conectiva.com/


^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2001-10-03 16:51 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2001-10-03 16:23 [patch] auto-limiting IRQ load take #2, irq-rewrite-2.4.11-F4 Manfred Spraul
  -- strict thread matches above, loose matches on Subject: below --
2001-10-02 20:34 [patch] auto-limiting IRQ load, IRQ-polling, irq-rewrite-2.4.11-D9 Ingo Molnar
2001-10-03 14:51 ` [patch] auto-limiting IRQ load take #2, irq-rewrite-2.4.11-F4 Ingo Molnar
2001-10-03 15:16   ` jamal
2001-10-03 16:51     ` Rik van Riel

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox