kernel preemption
also: preemptible kernel, kernel preemptibility
Kernel preemption is a Linux kernel feature that allows the scheduler to interrupt and pause long-running kernel code, enabling lower-latency task switching and more responsive system behavior.
Kernel preemption enables the kernel scheduler to preempt (interrupt) kernel-space code execution, similar to how user-space processes are preempted. Without preemption, kernel code runs to completion before other tasks can execute, potentially causing long delays.
When kernel preemption is enabled, the scheduler can pause kernel operations at preemption points to switch to higher-priority tasks, reducing latency for time-sensitive operations. This is particularly important for real-time applications and interactive systems that require predictable response times.
Kernel preemption is controlled at compile time via CONFIG_PREEMPT (full preemption), CONFIG_preempt_VOLUNTARY (voluntary preemption), or CONFIG_PREEMPT_NONE (disabled). Higher preemption levels reduce latency but add slight overhead. Most desktop and server distributions compile with some form of preemption enabled.