tech-kern archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: bottom half



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



Home | Main Index | Thread Index | Old Index