Deferred work
As introduced in an earlier section, bottom halves are kernel mechanisms for executing deferred work, and can be engaged by any kernel code to defer execution of non-critical work until some time in the future. To support implementation and for management of deferred routines, the kernel implements special frameworks, called softirqs, tasklets, and work queues. Each of these frameworks constitute a set of data structures, and function interfaces, used for registering, scheduling, and queuing of the bottom half routines. Each mechanism is designed with a distinct policy for management and execution of bottom halfs. Drivers and other kernel services that require deferred execution will need to bind and schedule their BH routines through the appropriate framework.
Softirqs
The term softirq loosely translates to soft interrupt, and as the name suggests, deferred routines managed by this framework are executed at a high priority but with hard interrupt lines enabled. Thus, softirq...