To: None <tech-kern@NetBSD.ORG>
From: Gordon W. Ross <email@example.com>
Date: 02/26/1997 13:54:59
Where is it appropriate to use splraise?
It is my understanding that in most places, splraise should not be
necessary (just splbio or whatever) thanks to the following rules:
splsoftxxx <= min(splbio, splnet, spltty)
splbio >= max(disk H/W interrupts)
splnet >= max(network H/W interrupts)
spltty >= max(tty H/W interrupts)
splimp >= max(splbio, splnet, spltty)
If our systems conform to the above rules, then it should not be
necessary to define any of splbio, splnet, spltty as splraise.
(At least as I understand it.)
The only places I've seen where we might accidently lower the
interrupt level with a call like splbio is in some special cases
like the autoconfig code, which may be running at splhigh, but
which may call driver functions that do splbio assuming they are
called from low priority (which is normally true).
So, can someone explain the rationale for defining splbio and
friends as splraise? Also, what is the performance impact?