[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20250820012901.5083-1-hdanton@sina.com>
Date: Wed, 20 Aug 2025 09:29:00 +0800
From: Hillf Danton <hdanton@...a.com>
To: Joshua Hahn <joshua.hahnjy@...il.com>
Cc: Andrew Morton <akpm@...ux-foundation.org>,
Johannes Weiner <hannes@...xchg.org>,
Chris Mason <clm@...com>,
Michal Hocko <mhocko@...e.com>,
linux-mm@...ck.org,
linux-kernel@...r.kernel.org
Subject: Re: [PATCH] mm/page_alloc: Occasionally relinquish zone lock in batch freeing
On Mon, 18 Aug 2025 11:58:03 -0700 Joshua Hahn wrote:
>
> 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.
>
Instead of the unlock/lock game, simply return with the rest left to workqueue
in case of lock contension. But workqueue is still unable to kill soft lockup
if the number of contending CPUs is large enough.
Powered by blists - more mailing lists