Chapter 2. The Players

Table of Contents

User Context
Hardware Interrupts (Hard IRQs)
Software Interrupt Context: Softirqs and Tasklets

At any time each of the CPUs in a system can be:

There is an ordering between these. The bottom two can preempt each other, but above that is a strict hierarchy: each can only be preempted by the ones above it. For example, while a softirq is running on a CPU, no other softirq will preempt it, but a hardware interrupt can. However, any other CPUs in the system execute independently.

We'll see a number of ways that the user context can block interrupts, to become truly non-preemptable.