Top Half and Bottom Half Interrupt Handling
Because the fast part of interrupt handling may not sleep and blocks other work while it runs, drivers split the job in two: a tiny top half that acknowledges the device and records what happened, and a bottom half that does the real processing afterwards in a context where waiting is allowed. Without the split, a driver either does too much with interrupts disabled and hurts the whole system's responsiveness, or tries to do slow work where it is illegal and deadlocks.
Questions this Concept answers
- Why do drivers split interrupt handling into two parts rather than doing all the work at once?
Linux Interrupt Handling: Top Half & Bottom Half
When a device raises an interrupt, the kernel cannot afford to do all the work right then, because other work is blocked while an interrupt handler runs. Linux therefore splits the job in two. The to…