Date: Tue, 2 Jan 2007 19:36:20 +0100 From: Olivier Houchard <cognet@ci0.org> To: John Baldwin <jhb@freebsd.org> Cc: Perforce Change Reviews <perforce@freebsd.org> Subject: Re: PERFORCE change 112424 for review Message-ID: <20070102183620.GA93436@ci0.org> In-Reply-To: <200701021301.26644.jhb@freebsd.org> References: <200701021653.l02GrTiC007919@repoman.freebsd.org> <200701021220.09987.jhb@freebsd.org> <20070102174011.GA93081@ci0.org> <200701021301.26644.jhb@freebsd.org>
next in thread | previous in thread | raw e-mail | index | archive | help
On Tue, Jan 02, 2007 at 01:01:26PM -0500, John Baldwin wrote: > On Tuesday 02 January 2007 12:40, Olivier Houchard wrote: > > On Tue, Jan 02, 2007 at 12:20:09PM -0500, John Baldwin wrote: > > > On Tuesday 02 January 2007 11:53, Olivier Houchard wrote: > > > > http://perforce.freebsd.org/chv.cgi?CH=112424 > > > > > > > > Change 112424 by cognet@hulglah on 2007/01/02 16:52:32 > > > > > > > > Implement a minimalist intr_eoi_src which just calls arm_unmask_irq(), > > > > so that irq are unmasked after a filter+ithread runs. > > > > > > Err, you shouldn't need to mask the IRQ unless you schedule the ithread. Hmm, > > > I'd also prefer it if we didn't pass function handlers to mi_handle_intr() (which > > > should be intr_handle() or something, all the MI interrupt code is intr_foo(), > > > not mi_foo_intr()) but instead set them in the intr_event and passed them to > > > intr_event_create(). > > > > Basically the problem is arm_execute_handlers() can't know if we're talking > > about an interrupt for which we had a filter, and so we don't have to mask it, > > or an interrupt for which we have to schedule the ithread. So it has to be > > always masked. > > Err, no, it shouldn't. :) mi_handle_intr() will use a different callback for the > different cases. It should call the disable_and_eoi() hook if the interrupt should > be masked, and it should just call teh eoi() hook if the interrupt just needs to be > eoi'd but not disabled (because a filter claimed it). > Oops you're right of course. Just making disab masking the interrupt, and not doing so by default should work fine. Olivier
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20070102183620.GA93436>