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.