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.