[ANNOUNCE] ARM integration into generic interrupt system

From: Thomas Gleixner
Date: Sun Oct 02 2005 - 09:20:29 EST


Hi,

During a lengthy discussion on arm-linux-kernel mailing list, ARM
maintainer Russell King posted a list of requirements that any
integration of ARM into the generic interrupt layer would have to
implement:

http://marc.theaimsgroup.com/?l=linux-arm-kernel&m=110693029912801&w=2

The background of the discussion was an attempt to modify the ARM
interrupt handling code to make adaption of Ingo's Realtime Preemption
patches for ARM possible. The proposed changes were unacceptable from
Russell's point of view and also Ingo was reluctant to accept a
non-generic version of his interrupt preemption work open-coded into the
ARM architecture.

After analysing the ARM specific interrupt code a conversion model was
integrated into the generic interrupt layer. The central point is the
seperate entry level handling of the different interrupt types in
contrast to the "all in one super handler" __do_IRQ(). The reasons and
lots of details for this seperate handling are described in the DocBook
docs of the patch along with the documentation of the resulting API. An
online version is available here:

http://www.tglx.de/projects/armirq/DocBook/index.html

The patch has been tested on a broad range of ARM platforms and the
feature set requested by Russell has been verified. There is no
functional change to the other architectures which use the generic
interrupt layer, but the type dependent entry level handler seperation
also has possible benefits for those users.

The patch allows a clean porting of Ingo's Preempt-RT patches to the ARM
platform.

The patch is not intended for immediate inclusion into mainline, as
there are plans in place to get rid of a small number of quirks that are
present for the sake of 1:1 conversion of the ARM platform. If the ARM
platform iterates the first few steps alone then we can get rid of these
quirks and the generic code is not burdened with them.

The patch is published to give it a broader test base and for
integration into Ingos Realtime Preemption patch set.

Russell King committed recently a broken out set of conversion macros
and name changes which reduced the patch size significantly. He also has
some cleanups of the current ARM irq layer in mind which will solve
some
of the quirks, and the armirq patch can provide a good test environment
for verification without breaking the whole ARM subsystem in the
mainline kernel.

There is broad consensus that the final conversion can only be done in
fine grained steps with intermediate testing periods.

The patch is available at:

http://www.tglx.de/projects/armirq/patch-2.6.14-rc3-armirq1.diff

along with a broken out patch series:

http://www.tglx.de/projects/armirq/broken-out/

http://www.tglx.de/projects/armirq/patch-2.6.14-rc3-armirq1.patches.tar.bz2

Thanks to all the people who helped with review, testing and comments
especially to Russell King, John Cooper, Robert Schwebel, Manfred Gruber
and the ARM kernel hacker folks.

tglx, Ingo


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