October 2017
Intermediate to advanced
586 pages
14h 8m
English
Whether an interrupt handler holds a spinlock or not, preemption is disabled on the CPU running that handler. The more you waste time in the handler, the less CPU time is granted to the other task, which may considerably increase the latency of other interrupts and so increase the latency of the whole system. The challenge is to acknowledge the device that raised the interrupt as quickly as possible in order to keep the system responsive.
On Linux systems (actually on all OSes, by hardware design), any interrupt handler runs with its current interrupt line disabled on all processors, and sometimes you may need to disable all interrupts on the CPU actually running the handler, but you definitely ...
Read now
Unlock full access