HEADS UP: interrupt filtering & newbus API breakage
piso at freebsd.org
Tue Feb 20 17:50:26 UTC 2007
after re@ approval, i'm ready to commit my first interrupt filtering
patch that contains _JUST_ the modification to the newbus API: no new
features, no improvement to the interrupt handling, etcetc
The patches against a 4 weeks old HEAD are here:
* intr_filter-newbus-MI.patch contains the diffs against the MI code
* intr_filter-newbus-$ARCH.patch contains the diffs against the MD
code for the various $ARCHs
* intr_filter-newbus-full.patch contains all the diffs in one big
For every patch file, there's a $patch.files, containing the list
of files modified by that patch.
Moreover, i put there a tarball of my src/sys dir (sys-intr.tgz) just
in case the big patch doesn't apply correctly.
In details these patches do:
-change bus_setup_intr() syntax (and the functions strictly connected
to it), adding a new filter_t argument -> this modification affects
all the drivers in our tree, and is the main source of
'fatness' of this patch
-retire INTR_FAST/IH_FAST (with the above modification to the syntax of
bus_setup_intr() these flags were redundant and senseless)
-change the FAST handlers to return a value (interrupt handled/interrupt
Unfortunately the patch is big (170kb), but the modifications were
mainly mechanical and i pushed different developers to test/review
I run these patches on i386 & amd64 for quite a bit, and all
the other archs (but sun4v) were tested with this code, and showed
no ill effects.
With this patch in place, all the remainig work about interrupt filtering
can be commited and wrapped in #ifdef ... #endif without affecting the
normal interrupt handler.
Moreover, with this "noise" out of my dvelopment branch, the rest of
the work (aka the new interrupt handling mechanism) could be easily
reviewed by different people.
So, if none as anything against it, i'm going to commit this work on
Friday 23 around 14:00 UTC, so speak now or forever hold your peace.
More information about the freebsd-hackers