Subject: Re: spl handling (bug?) of alpha and mips
To: Noriyuki Soda <soda@sra.co.jp>
From: Matthew Jacob <mjacob@feral.com>
List: tech-kern
Date: 07/27/1998 10:28:52
(nobody else responded... I dunno mips... but..)

On Mon, 27 Jul 1998, Noriyuki Soda wrote:

> spl(9) manpage says
> >>   In order of highest to lowest priority, the priority-raising
> >>   functions are:
> 	:
>       [snip]
> 	:
> >> 	splsoftnet()	blocks soft network interrupts.
> >> 
> >>   Two functions lower the system priority level.  They are:
> >> 
> >> 	splsoftclock()	unblocks all interrupts but the soft clock
> >> 			interrupt.
> >> 
> >> 	spl0()		unblocks all interrupts.
> 
> In short, splsoftnet() *raises* spl to (at least) softnet, and
> splsoftclock() *lowers* spl to softclock, and i386 seems to follow this
> description.
> 
> but,
> 
> on sys/arch/alpha/include/intr.h:
> 	/* IPL-lowering/restoring macros */
> 	#define splx(s)							\
> 	    ((s) == ALPHA_PSL_IPL_0 ? spl0() : alpha_pal_swpipl(s))
> 	#define splsoft()               alpha_pal_swpipl(ALPHA_PSL_IPL_SOFT)
> 	#define splsoftclock()          splsoft()
> 	#define splsoftnet()            splsoft()
> that is, both splsoftclock() and splsoftnet() *lower* spl.
> alpha's splsoftnet() seems to be wrong.
> 

Yes- I think you're right about this- softnet shouldn't potentially
lower priority.