In post-
SMPng FreeBSD, most
interrupts are handled in the
context of a
kernel thread. Traditional
Unix handled interrupts in the context of the currently running
process, which is bad for
SMP because it makes
parallelism too
inefficient (using the traditional
ipl system characterized by splfoo()).
Kernel threads use locks for a much better model that can scale to more processors. These not-yet-light-weight KSEs can run on an arbitrary processor, and will show up like any other process in top or ps.