Menu
Home Explore People Places Arts History Plants & Animals Science Life & Culture Technology
On this page
spl (Unix)
Collection of Unix interrupt priority control commands

spl is the name for a collection of Unix kernel routines or macros used to change the interrupt priority level. This was historically needed to synchronize critical sections of kernel code that should not be interrupted. Newer Unix variants which support symmetric multiprocessing now mostly use mutexes for this purpose, which is a more general solution, so multiple processors can execute kernel code at the same time.

On older PDP-11 versions of Unix, there were eight of these routines, ranging from spl0 to spl7, each corresponding to one PDP-11 interrupt priority level, in addition to splx, which restores a previous priority level (returned by one of the other routines). On BSD Unix and its derivatives, these are called splhigh, splserial, splsched, splclock, splstatclock, splvm, spltty, splsofttty, splnet, splbio, splsoftnet, splsoftclock, spllowersoftclock, spl0, and splx.

As of March 2019[update], the spl family of primitives is still heavily used in OpenBSD and NetBSD, which is evidenced by the plentiful calls to splnet() within the networking code; whereas FreeBSD and DragonFly BSD use more modern concepts; for example, in DragonFly, LWKT tokens may be used in place of spl.

We don't have any images related to spl (Unix) yet.
We don't have any YouTube videos related to spl (Unix) yet.
We don't have any PDF documents related to spl (Unix) yet.
We don't have any Books related to spl (Unix) yet.
We don't have any archived web articles related to spl (Unix) yet.

See also

References

  1. Lehey, Greg (2001), Improving the FreeBSD SMP implementation, retrieved 11 May 2018 http://www.lemis.com/grog/SMPng/USENIX/

  2. "spl(9) - OpenBSD manual pages". Retrieved 11 May 2018. https://man.openbsd.org/spl.9

  3. Lions, John (1976). Lions' Commentary on UNIX 6th Edition, with Source Code. p. 43. /wiki/Lions%27_Commentary_on_UNIX_6th_Edition,_with_Source_Code

  4. Lions, John (1976). Lions' Commentary on UNIX 6th Edition, with Source Code. p. 41. /wiki/Lions%27_Commentary_on_UNIX_6th_Edition,_with_Source_Code

  5. McKusick, Marshall Kirk; et al. (authors) (2004). The Design and Implementation of the FreeBSD Operating System. Addison-Wesley. p. 93.

  6. Lehey, Greg (2001), Improving the FreeBSD SMP implementation, retrieved 11 May 2018 http://www.lemis.com/grog/SMPng/USENIX/

  7. Lions, John (1976). Lions' Commentary on UNIX 6th Edition, with Source Code. p. 43. /wiki/Lions%27_Commentary_on_UNIX_6th_Edition,_with_Source_Code

  8. "spl(9) - OpenBSD manual pages". Retrieved 11 May 2018. https://man.openbsd.org/spl.9

  9. "spl(9) - OpenBSD manual pages". Retrieved 11 May 2018. https://man.openbsd.org/spl.9

  10. "/sys/net/if.c". BSD Cross Reference. OpenBSD. 2019-03-01. Retrieved 2019-03-05. s = splnet(); http://bxr.su/o/sys/net/if.c

  11. "/sys/net/if.c". BSD Cross Reference. NetBSD. 2019-03-01. Retrieved 2019-03-05. s = splnet(); http://bxr.su/n/sys/net/if.c

  12. "/sys/net/if.c". BSD Cross Reference. OpenBSD. 2019-03-01. Retrieved 2019-03-05. s = splnet(); http://bxr.su/o/sys/net/if.c

  13. "/sys/net/if.c". BSD Cross Reference. NetBSD. 2019-03-01. Retrieved 2019-03-05. s = splnet(); http://bxr.su/n/sys/net/if.c