From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-alma10-1.taild15c8.ts.net [100.103.45.18]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 3A03636606A for ; Fri, 22 May 2026 14:23:43 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=100.103.45.18 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779459825; cv=none; b=IVrB17kccslLmgne30bWAGqL948HSKHmuEFay8LiFs6Pc/5FgcU6qCSlk0TWr7VRQJ0LqpT0n1348RdqzGzn6dizLOf5cbZ3IE9If4Vo/aJI608g1feYJp6Cq7MxeKDqIRv+8RF69qL80LxYC0zmx07VdOufftcQ5t4vZL79bq8= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779459825; c=relaxed/simple; bh=5xU7bvNWPz0EcVzac20UtCjNot5RIW9j5Mp9rjIj3Ow=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=myuINjw9ZP6HWvC/FqTQ5nGNrZ2/qeWMIE3tf91vpFENzg9QozMcCWTVEE88zf0cvshwauvue3s6u8inVKCkNEoJVzPTHgzL+P4B/HTZ7v3qokZ36+mNAHqz+1oLHf5yAA/UN+88uTn37HSeiWc1iLtCYPw3mNc3gtPWHIzuGEo= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=hbkvlrx+; arc=none smtp.client-ip=100.103.45.18 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="hbkvlrx+" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 8712E1F00A3E; Fri, 22 May 2026 14:23:41 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel.org; s=k20260515; t=1779459823; bh=vNUnwd0Z1xsF+oZJGcRcFicg2hDM3WcwB/9gZhQZ+wk=; h=From:Date:Subject:References:In-Reply-To:To:Cc; b=hbkvlrx+xq2crqJZLJ8xlwsNZcEtQ7vIF/I3PYTemtAs3R1Gquyl5NdzyrbocQTo6 eRX4jdQdt+fcIVAm8Ibaqi/wHJ43w1bYBgmKv88TV4yuUx9qGLwrZyFLEV8xtcVmab XPcxZRpfYTaASTlNmAPEmxzNLy7aE2ZPbyldH/zgp3OQZM1pYJfle5FokVDdtHAQmY 5XD7UBP3RQ3EDaKEPmSZLlIMtrgHCmJuZE/8dI2LVzDE0SZnCBY+icVKORIIjitSP9 raJ2RchT6+8RL0HizNZlLwm7g9WAGnr43dDRIqg01EmgqIpdbKpJVu6FM8ioJv4VdB 2Oo4ZYAAYqZ9Q== From: "Vlastimil Babka (SUSE)" Date: Fri, 22 May 2026 16:23:21 +0200 Subject: [PATCH v3 2/2] mm, slab: simplify returning slab in __refill_objects_node() Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit Message-Id: <20260522-b4-refill-optimistic-return-v3-2-2ba78ec1c6ed@kernel.org> References: <20260522-b4-refill-optimistic-return-v3-0-2ba78ec1c6ed@kernel.org> In-Reply-To: <20260522-b4-refill-optimistic-return-v3-0-2ba78ec1c6ed@kernel.org> To: Harry Yoo Cc: Hao Li , Christoph Lameter , David Rientjes , Roman Gushchin , Andrew Morton , linux-mm@kvack.org, linux-kernel@vger.kernel.org, hu.shengming@zte.com.cn, Vinicius Costa Gomes , "Vlastimil Babka (SUSE)" X-Mailer: b4 0.15.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=1282; i=vbabka@kernel.org; h=from:subject:message-id; bh=5xU7bvNWPz0EcVzac20UtCjNot5RIW9j5Mp9rjIj3Ow=; b=owGbwMvMwMG4+8GG0kuuHbMYT6slMWQJpD19dNRAbVL2OX3jTvaMuGjjO1XlVuaXut63X89ne 5IiIn2rk9GfhYGRg8FSTJGlevcJR9GZyh7TPHw/wgxiZQKZIi3SwAAELAx8uYl5pUY6Rnqm2oZ6 hkCGjhEDF6cATHWIKPtvVp09K3OqG7SO6R+pzfKMbD+2/0YmF3t9/PbIdbcVbn9Xzpz+VXXlj+e Lj3P80d18PEQ8VVH45Am5d9e6VDtXzRT4Z3jlzQ4hl+LuqWm8rStM01MakjgPH1yy8mDnHGumuF n9FZt3LNXgf9h3Se1RNNddsf/NxzVj7Z5z10Zx3gqt3eK5qrkxUuOJepf70X+6hS2Xrx9+9zjm2 /uQvKN7X6r1z3yw3ld3j5Fi/frzaz0euMx1sNn9wUuBnVHN1lYp4ZKOR+liMz97A9d/Yiv7ay5K mNwTilrHOyubUWOWRUHGHqeAR1zTa3Ucn22o+5Kmfc5V5fwXR++MVTtuntuhtLL6osfsSRXbdDW /vN8PAA== X-Developer-Key: i=vbabka@kernel.org; a=openpgp; fpr=A940D434992C2E8E99103D50224FA7E7CC82A664 When we return slabs to the partial list because we didn't fully refill from them, we observe the min_partial limit when the returned slab is empty, and discard it when over the limit. But it's unlikely for the limit to be reached while we were refilling, and the worst outcome is to have temporarily more free slabs on the list than necessary. So just drop that code and simplify the function. Signed-off-by: Vlastimil Babka (SUSE) --- mm/slub.c | 10 ---------- 1 file changed, 10 deletions(-) diff --git a/mm/slub.c b/mm/slub.c index 5816fcfc7a90..074d57c0390b 100644 --- a/mm/slub.c +++ b/mm/slub.c @@ -7196,21 +7196,11 @@ __refill_objects_node(struct kmem_cache *s, void **p, gfp_t gfp, unsigned int mi list_for_each_entry_safe(slab, slab2, &pc.slabs, slab_list) { - if (unlikely(!slab->inuse && n->nr_partial >= s->min_partial)) - continue; - list_del(&slab->slab_list); add_partial(n, slab, ADD_TO_TAIL); } spin_unlock_irqrestore(&n->list_lock, flags); - - /* any slabs left are completely free and for discard */ - list_for_each_entry_safe(slab, slab2, &pc.slabs, slab_list) { - - list_del(&slab->slab_list); - discard_slab(s, slab); - } } return refilled; -- 2.54.0