Taylor R Campbell <campbell%mumble.net@localhost> writes: > What I meant when I said that to Kamil is that we don't have any > formalized notion called `top half' and `bottom half'. We have hard > interrupt handlers which are supposed to have small bounded latency, > and we have soft interrupt handlers and kernel threads at lower > priorities to which hard interrupt handlers defer long computations > and I/O. The notion of top and bottom half is historical in BSD from long ago (2BSD even). As far as "formal" goes, I think it's just the usual BSD problem of an undocumented design. Since the original, two things have happened: we need locking, because preemption of interrupts only works for mutual exclusion on a single CPU we have softints, which are not bottom half and not top half, but in between. This is not really because they are preemptible (traditional disk interrupt handlers were preemptible by serial drivers) but because they can sleep. Because of this transition from halves to thirds, and because of cconfusion with Linux, the term bottom half may now be best avoided. Overall, the whole subject of locking in the kernel is too hard for new people to figure out, and I think it's great that Kamil is writing an overview for it.
Attachment:
pgpTIpcLYAkVf.pgp
Description: PGP signature