Executive brief
The Linux kernel's memory page migration function could cause system stalls when migrating large batches of memory pages, particularly in virtualized environments running KVM. When the kernel defers preemption checks, background tasks like memory compaction could monopolize CPU resources for minutes, preventing essential system maintenance operations from completing.
Technical details
This is a resource-starvation issue in the mm/migrate.c migrate_pages_batch() function. The vulnerable code path unmaps folios (memory page structures) before moving them, triggering expensive MMU notifier callbacks on KVM hosts via kvm_mmu_notifier_invalidate_range_start(). On preemption-disabled kernels, cond_resched() is a no-op, and involuntary preemption does not satisfy Tasks-RCU quiescent state requirements. As a result, tasks like kcompactd can run continuously without yielding to the RCU grace period mechanism, stalling system maintenance for minutes. The fix replaces cond_resched() with cond_resched_tasks_rcu_qs() to ensure quiescent states are reported. No active exploitation or security impact is documented; this is a kernel scheduling/reliability issue.
Affected products
- Linux Linux kernel multiple stable series (2.6.11 through 7.2)
Timeline
- 2026-09-11: disclosed
- 2026-07-27: patched: Upstream patch authored; stable backports released 2026-09-07 and later
- 2026-09-14: other: Integrated into stable kernel releases by Greg Kroah-Hartman