From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id 23626C83F1B for ; Thu, 17 Jul 2025 08:03:25 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 97F858E0002; Thu, 17 Jul 2025 04:03:24 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 909F78E0001; Thu, 17 Jul 2025 04:03:24 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 7AA618E0002; Thu, 17 Jul 2025 04:03:24 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0013.hostedemail.com [216.40.44.13]) by kanga.kvack.org (Postfix) with ESMTP id 629238E0001 for ; Thu, 17 Jul 2025 04:03:24 -0400 (EDT) Received: from smtpin06.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay03.hostedemail.com (Postfix) with ESMTP id EDC22BA84E for ; Thu, 17 Jul 2025 08:03:23 +0000 (UTC) X-FDA: 83673016686.06.74FDC0A Received: from out30-112.freemail.mail.aliyun.com (out30-112.freemail.mail.aliyun.com [115.124.30.112]) by imf13.hostedemail.com (Postfix) with ESMTP id CB08820009 for ; Thu, 17 Jul 2025 08:03:21 +0000 (UTC) Authentication-Results: imf13.hostedemail.com; dkim=pass header.d=linux.alibaba.com header.s=default header.b=mQEr2T5l; spf=pass (imf13.hostedemail.com: domain of baolin.wang@linux.alibaba.com designates 115.124.30.112 as permitted sender) smtp.mailfrom=baolin.wang@linux.alibaba.com; dmarc=pass (policy=none) header.from=linux.alibaba.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1752739402; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=UX7hFbh/TK6YVLzfx5QtF9bfxIcBhjU5F7WclYEe4sE=; b=bYVdQUCBs9obyg3OkY9mZcnlsaZWakoHVR5qSCxf7EuKFeBLDFKtlI5ZXuv8UeWY7FVNgE Y8RKuJQV9Gent/1PonLml5T01fuTZADG7Pr6+KP+rxEznWPoJm2JSfisEi46jzw3bK6L74 DBPsdlkMcQ5KD0B6gb14rer/g+4W87w= ARC-Authentication-Results: i=1; imf13.hostedemail.com; dkim=pass header.d=linux.alibaba.com header.s=default header.b=mQEr2T5l; spf=pass (imf13.hostedemail.com: domain of baolin.wang@linux.alibaba.com designates 115.124.30.112 as permitted sender) smtp.mailfrom=baolin.wang@linux.alibaba.com; dmarc=pass (policy=none) header.from=linux.alibaba.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1752739402; a=rsa-sha256; cv=none; b=JHFIeoIJWrG9mKSYp75pQ1RIJp4EDmRODjMq+oMffNJV38hJofd/O2mXyyQGn6RiYi8Wrt l/stRbgOQZEZ5UVEzgiQ4rI1PNXF60/FDkaxXaEQtI1ySQNaUFENMlQVAI8KIbTaUWxgf5 6DGg8cZPy0fyVbZ/5iHLhXzj7cGO8UI= DKIM-Signature:v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.alibaba.com; s=default; t=1752739398; h=Message-ID:Date:MIME-Version:Subject:To:From:Content-Type; bh=UX7hFbh/TK6YVLzfx5QtF9bfxIcBhjU5F7WclYEe4sE=; b=mQEr2T5l51qJF/dAwbwO4/txadQtPkgY+eoRc5BdtIzip4XCa7/vd8KLYnprDzpFZyboUpG8/ndn4U7xvjHtv1gCo7rf4uOhoVugqpyRbYEC7HG+kJ4WjpkwXgWyZkVuJjj53JFeU+xXx9b+Zm5mnuuJKFdVzwHaGLFnJWMZLiY= Received: from 30.74.144.120(mailfrom:baolin.wang@linux.alibaba.com fp:SMTPD_---0Wj7QQKs_1752739396 cluster:ay36) by smtp.aliyun-inc.com; Thu, 17 Jul 2025 16:03:17 +0800 Message-ID: <9ba7c5bd-cb7f-498a-b829-43d26993bc73@linux.alibaba.com> Date: Thu, 17 Jul 2025 16:03:16 +0800 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH v3 2/2] mm/huge_memory: use folio_expected_ref_count() to calculate ref_count. To: Zi Yan , Balbir Singh , David Hildenbrand , linux-mm@kvack.org Cc: Andrew Morton , Hugh Dickins , Kirill Shutemov , Lorenzo Stoakes , "Liam R. Howlett" , Nico Pache , Ryan Roberts , Dev Jain , Barry Song , linux-kernel@vger.kernel.org References: <20250714171823.3626213-1-ziy@nvidia.com> <20250714171823.3626213-3-ziy@nvidia.com> From: Baolin Wang In-Reply-To: <20250714171823.3626213-3-ziy@nvidia.com> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Stat-Signature: jkguxu1wowm61xs8zzh319mwerfmfjyc X-Rspamd-Server: rspam01 X-Rspamd-Queue-Id: CB08820009 X-Rspam-User: X-HE-Tag: 1752739401-277102 X-HE-Meta: U2FsdGVkX1/eDhi6+UtYxEQvDBLqnp6WmlQ3BCkvK79MR4A3DA8t0yWa4KnVIYLgRf2AfMPaFqUdL9/X1Yjblt9EovX+4b3L1vmg7oFdpGeoQTF/ZQYzaDn1tEG7hOR1dAdHYYWpaohhKqYFctk4o61OslDwneA3OS930T4Jm6ewrEpHkHSoaIwoeT8HfmBhd5LM0cnNqNESef+TNgo1agzAKTe2WOPegq3APzAZq3nVGHppHG3macDS/9IuOY5ZNozDY8h2B1dChiJPQRGBYwlutzRDl1xzYDEtjOwos0vWN/a+5NW5/0obot92R/LO0/QgowC0Ce2BzRS2zj0Rk/yGt/AVRh1bok2QE2ICZjjZbq9rbs6y4SGrsQIIy/gOY0qiBal5tggKPLPILEMXw4StRRfiRQcu5LjQ99k5JygRIuSmCqMBEVg63zbfv2DrLhFlz8EI5N8zXeyktzeC/7x6W87noA4MLKZ3nK0oCbI36ZSvz0Ix4G8+T+aVmFCLwBPiCFl1y7vgl1zaKaD9WcuwCuWclMe6hrLZS75x2SEpFas/QKvllztX1GRC1VYVGFwHnwOOJxJqr1HyKXp/BhNd+6LOaN9CAfe9Q4Z12WHIZzVBiAH7T7xJtISx2RJrZkMUpZsdD5vLP8ReUEFN59DJ2NExmX3wJ49KSxI5XlkbeX4DDYZkB45l/qD1Lt8hhdXfD6a/h9fmToD4yF5B2g6F4RFlx3e6Hn9l1PfuwSJ2zTY+/Ttw9sGldt1rFq8lrRQV5uwkuifMVChchublx1Gr3+bbx9oyxpBBQSWjHfnku80JBmc6RUhW6mZGfpq+Nv26ohMDnP3LAZPF1kO7zjtMxBqAKT2Drv3MwUajn7U1sSKP0sAASUR+SajxBcjxboomxdfsVMxcIkAdoRKDCbK9PiHAwTMbt4VmNh7it1vgIlAPFMsjSpN7ujYieK74G8QcFz7OCT202Mhs5fB YSDEaS50 AbtMgUTGVdnZQDYCtl5uaZ9MgnHUjQ4GLKNjpDf3Ld1IkTno7KjrMhTsCjejfUBLqJ5pgEG/ttskqC/kwEvjzIbENx7aTfceQZAe2Rk/DeIj3DE3A+d9x84cRI1NANywKR6IZyeKRSLVhyMWPg5fl5o5j7p94VNeC2WVBWZVd8k+ZeN7IMMmge+zM1LmJan2CGOnpR93b+M2MIeJ8pEB22uP1rWnfYpeXy7mqSucVR/XReu5zOy1fbtw6RISIVnb92OJtRVWMmOZFjXH0WXIMPRrLwg48vQio07X1nQkYp7iCuEnyhBMreXvVsWhonkqzsRERCEMotjo0ScZ9Xs8ZdpOR/X7u1fODTddyEkoRAtzBXqtTNcREzWLakwNs1QW0is+LTsfqd70AWlem95GNB5RGtRBvfYqK9pvJLS/+dmaS7r2/EZ5MBpiYKVHCaBtzhlvYvtukWiTJfeOcvIEl/XHelrYKOuk9ThLkLaUNenqkY1wa47OlXGysKuMOX6T1SA/r X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: On 2025/7/15 01:18, Zi Yan wrote: > Instead of open coding the ref_count calculation, use > folio_expected_ref_count(). > > Suggested-by: David Hildenbrand > Signed-off-by: Zi Yan > Acked-by: Balbir Singh > Acked-by: David Hildenbrand > --- Looks more readable. Thanks. Reviewed-by: Baolin Wang > mm/huge_memory.c | 12 +++++------- > 1 file changed, 5 insertions(+), 7 deletions(-) > > diff --git a/mm/huge_memory.c b/mm/huge_memory.c > index a7ee731f974f..31b5c4e61a57 100644 > --- a/mm/huge_memory.c > +++ b/mm/huge_memory.c > @@ -3735,6 +3735,7 @@ static int __folio_split(struct folio *folio, unsigned int new_order, > if (folio_ref_freeze(folio, 1 + extra_pins)) { > struct address_space *swap_cache = NULL; > struct lruvec *lruvec; > + int expected_refs; > > if (folio_order(folio) > 1 && > !list_empty(&folio->_deferred_list)) { > @@ -3805,11 +3806,8 @@ static int __folio_split(struct folio *folio, unsigned int new_order, > new_folio = next) { > next = folio_next(new_folio); > > - folio_ref_unfreeze( > - new_folio, > - 1 + ((mapping || swap_cache) ? > - folio_nr_pages(new_folio) : > - 0)); > + expected_refs = folio_expected_ref_count(new_folio) + 1; > + folio_ref_unfreeze(new_folio, expected_refs); > > lru_add_split_folio(folio, new_folio, lruvec, list); > > @@ -3839,8 +3837,8 @@ static int __folio_split(struct folio *folio, unsigned int new_order, > * Otherwise, a parallel folio_try_get() can grab origin_folio > * and its caller can see stale page cache entries. > */ > - folio_ref_unfreeze(folio, 1 + > - ((mapping || swap_cache) ? folio_nr_pages(folio) : 0)); > + expected_refs = folio_expected_ref_count(folio) + 1; > + folio_ref_unfreeze(folio, expected_refs); > > unlock_page_lruvec(lruvec); >