--- On Tue, 3/17/09, Robert Watson <rwatson_at_FreeBSD.org> wrote: > From: Robert Watson <rwatson_at_FreeBSD.org> > Subject: Re: Interrupt routine usage not shown by top in 8.0 > To: "Paolo Pisati" <p.pisati_at_oltrelinux.com> > Cc: "Barney Cordoba" <barney_cordoba_at_yahoo.com>, current_at_freebsd.org > Date: Tuesday, March 17, 2009, 11:24 AM > On Tue, 17 Mar 2009, Paolo Pisati wrote: > > > perhaps i misunderstood your question, but i'll > try to explain a bit: > > > > before 7.0, bus_setup_intr() took just one function > thus you could have an INTR_FAST or an INTR_MPSAFE handler, > and you choose the kind of handler via a flag (INTR_FAST in > this case). > > > > after 7.0, bus_setup_intr() took 2 functions, thus you > could have: a fast handler (aka filter), or an ithread > handler (aka mpsafe), or a fast + ithread handler (available > only with INTR_FILTER turned on). > > > > in bus_setup_intr() the first function pointer is for > the filter side of the handler, while the second pointer is > for the ithread part, and if you declare both you can filter > events (interrupts) and call the rest of the device driver > (the ithread part) after the filter has recognized and > acknowledged&masked the interrupt. > > This clarifies my misunderstanding, thanks! > I'd still be interested in knowing the specific advantage/consequences of a fast filter vs an MPSAFE ithread? In what circumstance would using a filter and then launching a task be advantageous over just using an ithread? BarneyReceived on Tue Mar 17 2009 - 19:28:21 UTC
This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:39:44 UTC