tasklet
also: bottom-half handler, BH
A tasklet is a lightweight kernel mechanism for deferring work from interrupt handlers to a later, safer time when the CPU can handle it with interrupts enabled. Tasklets run in softirq context and are faster and simpler than workqueues.
A tasklet is part of Linux's bottom-half processing system that allows interrupt handlers to defer non-urgent work. When a hardware interrupt occurs, the handler executes quickly in hardirq context where most kernel operations are unsafe. Tasklets allow this handler to schedule work to run soon afterward in a safer softirq context.
Tasklets are serialized per-CPU, meaning the same tasklet runs on only one CPU at a time, eliminating many synchronization concerns. They execute with a guaranteed lower priority than interrupts but higher than normal process scheduling, making them ideal for time-sensitive but not interrupt-critical work.
For example, a network driver's interrupt handler might queue packet reception work in a tasklet, allowing the handler itself to finish quickly and re-enable interrupts. The tasklet processes pending packets when the CPU is ready, without requiring the heavier overhead of creating a kernel thread (workqueue).
Modern kernels also provide softirq and workqueue alternatives; tasklets are good for simple deferred work, while workqueues are preferred when blocking or sleeping is needed.