GPU VulnDB

Database/Kernel, userspace & hypervisor

Linux mm/vmscan: direct reclaim never reports an RCU-tasks quiescent state, stalling rcu_tasks under memory pressure

UnscoredCVE-2026-89753Kernel, userspace & hypervisorcurated

Impact

Nothing bounds how long direct reclaim runs, and the scan loop in shrink_lruvec() only called cond_resched(), which is a no-op on PREEMPTION kernels. Involuntary preemption is not a Tasks-RCU quiescent state, so a task reclaiming inside a page fault never reports one and becomes an rcu_tasks holdout. The reporter observed these stalls in the Meta fleet, with the holdout task sitting in shrink_lruvec under handle_mm_fault. Tasks-RCU is what gates tracepoint and BPF trampoline teardown, so a stall there hangs observability and BPF-attached tooling on a node that is already under memory pressure - exactly the moment an operator is trying to see what is happening on a GPU host packed to its memory limit. The fix upgrades the call to cond_resched_tasks_rcu_qs(), which reports a quiescent state even when cond_resched() does nothing.

Who can reach it

No attacker required. Any workload that drives sustained direct reclaim on a PREEMPTION kernel reproduces it, including an ordinary tenant filling memory in their own cgroup.

What to do

Patch the host kernel to a stable release containing the cond_resched_tasks_rcu_qs() change and reboot the node. No configuration mitigates it; reducing memory pressure so direct reclaim is short-lived avoids the stall in practice. Watch for 'rcu_tasks detected stalls on tasks' in dmesg with shrink_lruvec in the call trace to identify affected nodes.

References

Related entries

All Kernel, userspace & hypervisor entries

This entry is curated: imported from vendor advisories with machine assistance, not yet individually verified. Confirm against your vendor's advisory before acting, and report anything wrong.