Subject: Re: isp(4) with Q-Logic 2340 suffers "stray interrupts" under load
To: Jason Thorpe <thorpej@shagadelic.org>
From: Greg A. Woods <woods@weird.com>
List: tech-kern
Date: 04/02/2005 18:37:32
[ On Monday, March 28, 2005 at 20:08:26 (-0800), Jason Thorpe wrote: ]
> Subject: Re: isp(4) with Q-Logic 2340 suffers "stray interrupts" under load
>
> I just checked in the attached (minimally invasive) patch, and will  
> request pullups to the netbsd-2 and netbsd-3 branches.

Thanks.  Could you request a pullup for netbsd-1-6 too?

(I think this may help prevent at least the worst of some other
interrupt related problems I've seen posted to this list, though I can't
say for sure that any of those posters are still running 1.6.x  :-)


>  void
> +alpha_shared_intr_reset_strays(struct alpha_shared_intr *intr,
> +    unsigned int num)
> +{
> +
> +	/*
> +	 * Don't bother blocking interrupts; this doesn't have to be
> +	 * precise, but it does need to be fast.
> +	 */
> +	intr[num].intr_nstrays = 0;
> +}

It needs to be fast because it always gets called for every interrupt,
right?  So maybe it should be a CPP macro?  (Not that I know what the
current cycle count for a function call is on any of the CPU models I
run, let alone any of the many other versions.... :-)

(or alternately an __inline__ definition?)

-- 
						Greg A. Woods

H:+1 416 218-0098  W:+1 416 489-5852 x122  VE3TCP  RoboHack <woods@robohack.ca>
Planix, Inc. <woods@planix.com>          Secrets of the Weird <woods@weird.com>