Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 20 Feb 2007 18:25:59 +0100
From:      Paolo Pisati <piso@freebsd.org>
To:        FreeBSD_Current <freebsd-current@freebsd.org>, FreeBSD_Hackers <freebsd-hackers@freebsd.org>
Subject:   HEADS UP: interrupt filtering & newbus API breakage
Message-ID:  <20070220172559.GA1569@tin.it>

next in thread | raw e-mail | index | archive | help
Hi developers,

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:

http://people.freebsd.org/~piso/intr_filter/

where:

* 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
patch file

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 
 not handled/etcetc)

Unfortunately the patch is big (170kb), but the modifications were
mainly mechanical and i pushed different developers to test/review
my code.

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.

bye,
P.



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20070220172559.GA1569>