PERFORCE change 102954 for review

John Baldwin jhb at freebsd.org
Tue Aug 1 18:34:45 UTC 2006


On Tuesday 01 August 2006 13:42, Sam Leffler wrote:
> Paolo Pisati wrote:
> > http://perforce.freebsd.org/chv.cgi?CH=102954
> > 
> > Change 102954 by piso at piso_newluxor on 2006/08/01 17:24:16
> > 
> > 	Convert ath to use a filter+ithread handler:
> > 	
> > 	use a spinlock (inside softc) to guard against
> > 	races when accessing sc_status or the interrupt registers,
> > 	and axe all the taskqueue jobs from ath_intr().
> 
> I highly doubt this does the right thing and the spinlock is almost
> certain to be the wrong thing to do here.  We should probably talk
> privately about how to restructure ath to use your stuff but I expected
> a very different approach.

I think it shouldn't actually need a lot of restructuring at all.  The 
existing ath_intr() function should be the filter, but instead of creating a 
task for the higher level handle, it just returns a flag to ask the interrupt 
code to schedule it.  This only handles 1 handler though, so if you kick off 
multiple tasks you might need to do some tweaking there (either do the most 
common one as the handler and still use taskqueue for the others or perhaps 
have the handler be a little "fatter").  This does seem like a lot more code 
churn than is necessary.

-- 
John Baldwin


More information about the p4-projects mailing list