INFRA Signal 373
Up To 12.8x Improvement Observed For gup_test With New Linux MM Patches
Illustration only Photo by Kier in Sight Archives on Unsplash
New Linux memory-management patches that batch address look-ups boost the gup_test benchmark by up to 12.8×.
The speedup comes from changes to the kernel’s follow_page_mask() routine, which many drivers and subsystems use to map virtual addresses to struct page objects. Engineers who rely on get_user_pages-style operations can see large latency reductions without altering user-space code. Deploying the patches requires rebuilding the kernel with the new changes, and the benefit is limited to code paths that invoke follow_page_mask().
Written by elseif from the cluster below · every claim links back to a sourceThe three things worth knowing
Kernel patches introduce batching in follow_page_mask() to reduce per-address overhead.
The gup_test benchmark shows up to a 12.8× performance increase after applying the patches.
Only workloads that depend on virtual-to-page translation gain the improvement; other memory paths remain unchanged.
THE READ
What the cluster adds up to.
The change targets the Linux memory-management subsystem, specifically the follow_page_mask() helper that translates virtual addresses into struct page references. By aggregating multiple look-ups into a single operation, the kernel reduces the number of expensive page-walks. This modification is isolated to the MM code and does not require changes to applications that call get_user_pages or related APIs. Engineers who need the performance boost must integrate the new patches into their kernel source and rebuild. The process is a standard kernel update: apply the patch set, compile, and deploy the new kernel image. No additional runtime configuration is mentioned, so the cost is primarily the build and testing effort. The reported 12.8× gain is measured with the gup_test benchmark, which exercises the get_user_pages path. Consequently, the improvement is most relevant to workloads that heavily pin user pages, such as high-throughput I/O, GPU memory sharing, or virtualization scenarios. Code that does not invoke follow_page_mask() will see no benefit. Because the optimization is confined to a specific kernel function, it will stop providing gains wherever that function is not use
Written by elseif from the cluster below · checked for specifics the sources never containedTHE CLUSTER