Re: [patch] io-apic-2.1.98-B

Linus Torvalds (torvalds@transmeta.com)
Sun, 26 Apr 1998 19:45:57 -0700 (PDT)


On Sun, 26 Apr 1998, MOLNAR Ingo wrote:
>
> here it breaks the NE2000 driver. (flood pinging causes interface hang,
> this is because IRQs are lost with the counter-less approach)

Quite frankly I think that anything that tries to count the interrupts is
a buggy approach.

That's not how the traditional APIC works either: it doesn't count
interrupts when they are disabled. So if the NE2000 driver has problems
then those are bugs in the NE2000 driver regardless of any io-apic stuff,
and it is possible that it shows up with the io-apic only because of some
subtle timing issues.

And if you do only a "cli/sti" sequence, that doesn't count the number of
interrupts that happened during the interrupts disabled, and you'll get
only one interrupt when you enable them again.

I'd rather fix the driver that is broken than have a system that has a
unnecessarily complex in handling interrupts. We've had too many problems
with interrupts under SMP for me to be willing to maintain hackish code
that doesn't have any solid reason for existing.

I'd like to have the self-IPI part, but I would _really_ really prefer to
not have the counter, until somebody convices me that it has to be there
(and that implies giving a reason other than "some ne2000 card has
problems", because the problems you see sound like they might be problems
for other people regardless of any io-apic issues).

> I've added various comments to key pieces of the code. Probably we dont
> need _that_ many counters, but i wanted to have stability first. With this
> patch i claim that the IO-APIC code is correct, anything left to be done?

I think you're going the wrong way. You're _adding_ stuff to make it
stable, and then we'll never dare remove it. I'd much rather try to remove
as much as humanly possible and fix any problems that uncovers rather than
try to add barnacles that hide the problem.

Linus

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu