cvs commit: src/sys/amd64/amd64 intr_machdep.c
src/sys/i386/i386 intr_machdep.c src/sys/kern kern_intr.c
gurney_j at resnet.uoregon.edu
Sun May 6 19:29:27 UTC 2007
Paolo Pisati wrote this message on Sun, May 06, 2007 at 21:10 +0200:
> On Sun, May 06, 2007 at 10:44:26AM -0700, John-Mark Gurney wrote:
> > Paolo Pisati wrote this message on Sun, May 06, 2007 at 17:02 +0000:
> > > Modified files:
> > > sys/amd64/amd64 intr_machdep.c
> > > sys/i386/i386 intr_machdep.c
> > > sys/kern kern_intr.c
> > > sys/sys interrupt.h
> > > Log:
> > > Bring in the reminaing bits to make interrupt filtering work:
> > When are we going to see man page updates to document this new feature?
> didn't prepare any patch for man pages cause the support for some
> archs is still missing, but i can do that if requested.
It's still useful to have as a reference... It's easy to document which
arches are still missing the parts...
> > Also, you forgot to update sys/sys/bus.h's comments? or did you fix
> > the code to behave like the comments?
> you mean this comment:
> * @brief Driver interrupt filter return values
> * If a driver provides an interrupt filter routine it must return an
> * integer consisting of oring together zero or more of the following
> * flags:
> * FILTER_STRAY - this device did not trigger the interrupt
> * FILTER_HANDLED - the interrupt has been fully handled and can be EOId
> * FILTER_SCHEDULE_THREAD - the threaded interrupt handler should be
> * scheduled to execute
> * If the driver does not provide a filter, then the interrupt code will
> * act is if the filter had returned FILTER_SCHEDULE_THREAD. Note that it
> * is illegal to specify any other flag with FILTER_STRAY and that it is
> * illegal to not specify either of FILTER_HANDLED or FILTER_SCHEDULE_THREAD
> * if FILTER_STRAY is not specified.
> #define FILTER_STRAY 0x01
> #define FILTER_HANDLED 0x02
> #define FILTER_SCHEDULE_THREAD 0x04
> except for the horrible english, the semantic is correct.
But in another email you said that specifing just FILTER_SCHEDULE_THREAD
(without FILTER_HANDLED) is illegal, but the above states that either
FILTER_HANDLED or FILTER_SCHEDULE_THREAD is valid..
Shouldn't it read something like:
Either FILTER_STRAY or FILTER_HANDLED must be specified. If
FILTER_HANDLED is specified, the FILTER_SCHEDULE_THREAD flag
may be provided to schedule the ithread.
> BTW, kris@ just told me that sun4v is broken since my first
> intr filtering commit: can we sat down and try to fix it or
> should we consider it officialy dead?
kmacy is probably a better person to talk to about this... Though I
have done some work on sun4v, I don't have immediate access to one,
and didn't work on the low level interrupt code as much as kmacy did...
I did look over the changes and don't see how things broken, but that
was purely by inspection...
John-Mark Gurney Voice: +1 415 225 5579
"All that I will do, has been done, All that I have, has not."
More information about the cvs-all