Introduced last year for Linux 6.13 was lazy preemption “PREEMPT_LAZY” for a preemption model that is similar to full preemption but less eager to preempt normal scheduler tasks to provide some of the performance benefits found with voluntary preemption. After initially being supported for x86_64 and RISC-V, it looks like Linux 6.16 will support lazy preemption on ARM64 (AArch64).
Lazy preemption is summed up in the original patches as:
“Lazy preemption will delay preemption for fair class but will function as Full preemption for all the other classes, most notably the realtime (RR/FIFO/DEADLINE) classes.
The goal is to bridge the performance gap with Voluntary, such that we might eventually remove that option entirely.”
Following the initial PREEMPT_LAZY merge with x86_64 and RISC-V support, LoongArch support also materialized followed by POWER CPUs. Now finally the ARM64 support looks like it could be merged for the next Linux kernel merge window.
Queued into ARM64’s “for-next/entry” Git branch this past week was arm64: enable PREEMPT_LAZY Now that it has made it into one of ARM64’s “for-next” Git branches, it should hopefully be submitted for the upcoming Linux 6.16 merge window barring any issues from arising in the code. Just around 20 lines of code needed to be modified for PREEMPT_LAZY on ARM64.