Re: PCI, ACPI, IRQ, IOAPIC: reroute PCI interrupt to legacy bootinterrupt equivalent

From: Jon Masters
Date: Wed Jan 14 2009 - 17:56:57 EST


On Wed, 2009-01-14 at 14:42 -0800, Eric W. Biederman wrote:
> Jon Masters <jcm@xxxxxxxxxx> writes:
>
> > On Wed, 2009-01-14 at 12:40 +0100, Ingo Molnar wrote:
> >
> >> it's not just -rt, but it is also needed for the concept of threaded IRQ
> >> handlers - which was discussed at the Kernel Summit to be desired for
> >> mainline.
> >
> > Right. I'm poking at Thomas' patches and hope to post something soon on
> > that front - I'm acutely aware that this will be impacted aswell but
> > because it's vaguely RT related had banded it under that banner.
>
> Stepping back a moment. The only way I can see this working reliably
> is if we disable the boot interrupt. Anything that leaves the boot interrupt
> enabled means that when we disable the primary interrupt the boot interrupt
> will scream, and thus we must disable it as well.
>
> Which leads to my problem with the entire development process of this feature.
>
> People want the feature.
> People don't want to pay attention to the limits of the hardware.
> Which leads to countless broken patches proposed.

Is a patch broken because hardware has limitations? If that were always
true then many of the patches we see in the kernel wouldn't be there.

> Which leads me to conclude.
> - IRQ handling in the RT kernel is hopelessly broken.

Nope. It's done in a very similar way to other real time kernels already
out there - really there are only so many ways to do this.

> - IRQ threads are a bad idea.

Why? IRQ threads actually make life so much easier - you have a task
context, you can do everything inside that rather than scheduling all
kinds of deferred work (that in RT will be done in another task later),
and so forth.

> None of this works reliably on level triggered ioapic irqs.

Level triggered IOAPIC IRQs have quirks, film at 11!

Jon.


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/