Re: [PATCH] mm/page_alloc: Occasionally relinquish zone lock in batch freeing

From: Joshua Hahn
Date: Tue Aug 19 2025 - 11:35:17 EST


On Mon, 18 Aug 2025 11:58:03 -0700 Joshua Hahn <joshua.hahnjy@xxxxxxxxx> wrote:

Cc-ing Suren, who works at Google, not Gogle. Sorry for the typo!
Joshua

> While testing workloads with high sustained memory pressure on large machines
> (1TB memory, 316 CPUs), we saw an unexpectedly high number of softlockups.
> Further investigation showed that the lock in free_pcppages_bulk was being held
> for a long time, even being held while 2k+ pages were being freed.
>
> Instead of holding the lock for the entirety of the freeing, check to see if
> the zone lock is contended every pcp->batch pages. If there is contention,
> relinquish the lock so that other processors have a change to grab the lock
> and perform critical work.
>
> In our fleet, we have seen that performing batched lock freeing has led to
> significantly lower rates of softlockups, while incurring relatively small
> regressions (relative to the workload and relative to the variation).