softirq
also: software interrupt, deferred interrupt
A deferred interrupt handler mechanism that allows the kernel to process less critical interrupt work outside of hard interrupt context, improving system responsiveness and reducing interrupt latency.
A softirq (software interrupt) is a kernel mechanism for handling interrupt-related work that doesn't require the immediate, high-priority execution of a hard (hardware) interrupt handler. When a hardware interrupt occurs, the kernel's hard IRQ handler runs at high priority, performs minimal work, and schedules a softirq to handle the rest asynchronously.
Softirqs are processed when the CPU returns to a lower priority context, such as when exiting hard interrupt handlers or during idle time. This design reduces the time spent in high-priority interrupt context, allowing other interrupts to be serviced more quickly. Common softirq types include NET_RX_SOFTIRQ for network packet reception and TIMER_SOFTIRQ for timer expiration handling.
For example, when a network packet arrives, the hard IRQ handler quickly records the packet location and schedules a softirq; the softirq later processes the packet at a lower priority level. You can view active softirqs and statistics using /proc/softirqs or tools like top.