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 BCE0EC83F17 for ; Tue, 15 Jul 2025 14:16:19 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 619B76B009A; Tue, 15 Jul 2025 10:16:19 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 5F0E66B00AA; Tue, 15 Jul 2025 10:16:19 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 506C26B00AB; Tue, 15 Jul 2025 10:16:19 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0016.hostedemail.com [216.40.44.16]) by kanga.kvack.org (Postfix) with ESMTP id 399996B009A for ; Tue, 15 Jul 2025 10:16:19 -0400 (EDT) Received: from smtpin07.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay01.hostedemail.com (Postfix) with ESMTP id 11B301DA170 for ; Tue, 15 Jul 2025 14:16:19 +0000 (UTC) X-FDA: 83666698878.07.51CD996 Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) by imf27.hostedemail.com (Postfix) with ESMTP id B17A24000A for ; Tue, 15 Jul 2025 14:16:16 +0000 (UTC) Authentication-Results: imf27.hostedemail.com; dkim=pass header.d=redhat.com header.s=mimecast20190719 header.b=H0UOYUtj; dmarc=pass (policy=quarantine) header.from=redhat.com; spf=pass (imf27.hostedemail.com: domain of david@redhat.com designates 170.10.129.124 as permitted sender) smtp.mailfrom=david@redhat.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1752588976; a=rsa-sha256; cv=none; b=G/PhLL9FH/CFwjHaSFJeKddrFZpT5LFEWyNJ1Qod96li3Y4plog01Zoeg608oxyR3BCNj9 Sam0w7dtvp6NQPggWrOT+7ObL6vRPChG8HQawdPrPc7eR2bBn3ZCDrc1pHjF8Fn2mSOxnp nEV3sgOL3yJwI7vGbmCdGGSLUgq/fCA= ARC-Authentication-Results: i=1; imf27.hostedemail.com; dkim=pass header.d=redhat.com header.s=mimecast20190719 header.b=H0UOYUtj; dmarc=pass (policy=quarantine) header.from=redhat.com; spf=pass (imf27.hostedemail.com: domain of david@redhat.com designates 170.10.129.124 as permitted sender) smtp.mailfrom=david@redhat.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1752588976; 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=2XcCNe/nf+U5xyNDth20FvcaJ04LceEfyGFSZgo7zRQ=; b=7pE4IfFYlW9bFplGik9kvJGmSNjwAie8FRbBWyKxM9n2byx9TcJwK3zqFVtQyN5H1bbO1r FnOALwmkL2ttaqN2DIREinNN/LKtvQS/lfvihsxrrKNsNdjtVxkF+EXHWMil8JaGJ8y78O 2ORZWccuK0zOb4q+473NAbftRx/B01o= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1752588976; h=from:from: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; bh=2XcCNe/nf+U5xyNDth20FvcaJ04LceEfyGFSZgo7zRQ=; b=H0UOYUtjApWr+FrvIbXiYAEl7yhL6EvNeW6vVuTuFhqnb7RpVcgNuZJTfJ3BJYtyKLERTK HfvYnVPhvh8Cy41ugvMXrFpAzkk3IoHTNSwYqoBtzh49vRu9U6qrEHqHzb4ktsBzmbq7g2 Ln7X3evVjqQgJKtYqQMeoa4F8FiKjxM= Received: from mail-wm1-f70.google.com (mail-wm1-f70.google.com [209.85.128.70]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-255-Szg2qg72Oga5q_kkFvw0Cg-1; Tue, 15 Jul 2025 10:16:14 -0400 X-MC-Unique: Szg2qg72Oga5q_kkFvw0Cg-1 X-Mimecast-MFC-AGG-ID: Szg2qg72Oga5q_kkFvw0Cg_1752588973 Received: by mail-wm1-f70.google.com with SMTP id 5b1f17b1804b1-45626532e27so6753935e9.1 for ; Tue, 15 Jul 2025 07:16:14 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1752588973; x=1753193773; h=content-transfer-encoding:in-reply-to:organization:content-language :from:references:cc:to:subject:user-agent:mime-version:date :message-id:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=2XcCNe/nf+U5xyNDth20FvcaJ04LceEfyGFSZgo7zRQ=; b=AFPLmeh7VuDjVFLZMT/hbrFIoURHRLPGztiCl788IUfDtGQnZiqljCfTtLDNpcErpL kGhUiLOALZjYd4i57G+GstWPWELKtCz3zGeJ8zpYwLAwcBfIcwzirmP6Ep+DKg2xSZyp 0usdw3zAZI9TErZAr07jrJKGRZ24BM0aCFNfp2HHu3Wus++qbkpCTkEv2rV7cgpZiV1/ A6tFN6wEgtUH5rRJKab9Fzy55zuHjnF6dCccOmT44xjajkhLn/4wSyCxLvFXfQCoP8nF NwuTVA2zUaSHjbWhs4VC3zN8uAjlDMQu1MbyAMdCE32wMfTVpZ6iJonN9WBh1GV1n3u/ Y2sA== X-Forwarded-Encrypted: i=1; AJvYcCWYAKeH4eWl0Sb1jDJGfEUS+CIAXmxPS1ksKYRFCx1BTH67IwaVaIG3xXxV7Yy2igBRX4sK6mChZg==@kvack.org X-Gm-Message-State: AOJu0YwQhfaaUtmY0v+D+W6dVb1ZnanI3fpNLESQPAjQ3v89+A4RkS+f SV+rpOUJMLYDTg2GBHKHANQaaYcQUKUSx61NrV9TT0YNb6Gry0xrSsARAEKVhGdVJPshQ2zS2iT ajT0JCmeTeTnf4Fhzv2BvlOQQBbwRtRX9/oFDcT8XgBxW0EDdfavn X-Gm-Gg: ASbGncs98691nCOhQTtFFLFqhciZp9Jx7dskLr6c7Jxv6tavfcarh/gFJWSDf+o0fJs AYbONrrTaGkmt6NS2xSIxf5aMJCPwvIEFZLYnYdHJ8oIoiXw+tO31dIHo/3I4GbpdLU4G8Wro/c T7Grn1RdahML7gfo33QC4oGgm7wfk5MmUAd6/RUV2uRIMFUd2buK/YYn0VxPFHxJDEUL+GuwpId RYiD3OafvRNJakFFffWw9unO/WVopbGnki2GhuMGx1cpPHKhQn/8i7vP0XWDkZorFxNA7YaKJvw gf32EAnq/tjDTHFmczaZcNvVtXoXq+BKXNrmp8IJWyWO3SMbcaTO8mEQG2hU5b4ps+LHPE2xnpd ITC+3QvLQCK1oTfp5zcEQHtczhH84tzE3HAtjerzdtvSuSj46dCV+E02w0fTMC73WExw= X-Received: by 2002:a05:600c:1ca2:b0:456:1a69:94fa with SMTP id 5b1f17b1804b1-4561a699783mr74094385e9.13.1752588972857; Tue, 15 Jul 2025 07:16:12 -0700 (PDT) X-Google-Smtp-Source: AGHT+IFdAqd5mpjTzNtfViNTbx93bOKhaoN2CcHdxMowaucQPZVJnCVBn40lvRB+aBNGrYrmkgSNKg== X-Received: by 2002:a05:600c:1ca2:b0:456:1a69:94fa with SMTP id 5b1f17b1804b1-4561a699783mr74093285e9.13.1752588972104; Tue, 15 Jul 2025 07:16:12 -0700 (PDT) Received: from ?IPV6:2003:d8:2f28:4900:2c24:4e20:1f21:9fbd? (p200300d82f2849002c244e201f219fbd.dip0.t-ipconnect.de. [2003:d8:2f28:4900:2c24:4e20:1f21:9fbd]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-454d5032fcbsm203995455e9.6.2025.07.15.07.16.10 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Tue, 15 Jul 2025 07:16:11 -0700 (PDT) Message-ID: <0793154d-a6ca-43b7-a0c3-01532d9cccc8@redhat.com> Date: Tue, 15 Jul 2025 16:16:09 +0200 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH v2 4/5] mm: add largest_zero_folio() routine To: "Pankaj Raghav (Samsung)" , Suren Baghdasaryan , Ryan Roberts , Baolin Wang , Borislav Petkov , Ingo Molnar , "H . Peter Anvin" , Vlastimil Babka , Zi Yan , Mike Rapoport , Dave Hansen , Michal Hocko , Lorenzo Stoakes , Andrew Morton , Thomas Gleixner , Nico Pache , Dev Jain , "Liam R . Howlett" , Jens Axboe Cc: linux-kernel@vger.kernel.org, willy@infradead.org, linux-mm@kvack.org, x86@kernel.org, linux-block@vger.kernel.org, linux-fsdevel@vger.kernel.org, "Darrick J . Wong" , mcgrof@kernel.org, gost.dev@samsung.com, hch@lst.de, Pankaj Raghav References: <20250707142319.319642-1-kernel@pankajraghav.com> <20250707142319.319642-5-kernel@pankajraghav.com> From: David Hildenbrand Organization: Red Hat In-Reply-To: <20250707142319.319642-5-kernel@pankajraghav.com> X-Mimecast-Spam-Score: 0 X-Mimecast-MFC-PROC-ID: SNrY02oPlJwT96pV_hBB2TdVPwqeSuUm2EUuUWOsmoY_1752588973 X-Mimecast-Originator: redhat.com Content-Language: en-US Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Rspamd-Queue-Id: B17A24000A X-Stat-Signature: pe19mrxdqtybwdwf6mswgt4s1ynxd6aa X-Rspam-User: X-Rspamd-Server: rspam08 X-HE-Tag: 1752588976-759871 X-HE-Meta: U2FsdGVkX18xTpJdsolcCtsWRYYSMtZI53fxmn4f+Z5Y8YFxWVgQlD1+6zbDmY4TpTVMBKi6L9Ri3W0D5PQkpslY6NeA7Ve/KYSxhwBp9NktajJ0RUexd/B5NwkPu4FdukC4L3AWVWZBbGnUJ9F/veSY+0O7a3hGPYVwa2kO5THBGdXuL/4Y4/hhold/nXtXsaQ4576cuAa4lTKCEmQKOtOLt39Arj5wzF3FBsN7Ctq4fG46sJCvsMTQZXVuAbwRhP30MZV8LoCHPfoGBAyBwK9IVLuV67v31TNRWtmbuJkxTu32LgIfXGp8YfSlYb7Ns8NRRjuBUwWnZtgfucO3Y24Xq4PfOxUzz2Lmw4hAWWd5JJQu9RGnMmQG+evZI5j3twlhPVbrYvMX3kFzSFsdhF4Q2wvPaKxReZ+CYzgiwZ6DykOPPcRuXdpfFevB5FXhIVXnrFI6WELrFnubn4ygF6aZ73c6pP59277L7+fn1MYoVgYtxVxXa05L60IS1TozHx9jzyJR7Jtwk7frkQ+OqLOZ1AO+gbvIzCoZsEJ4BzsThksqHMmSGcjHAz+t5r/Wz5MiBtcLpDq3Feoz3d9wvpxTL49cxdks9FGDjZbil2IUJ0998S7+K8Nb+/YbI9o6c2oENdwkXb+xHTDXAPXvuVxjtepUDS1bvn2NIqhuwm5duSsl1Ou5Ak5yLhsNHCuslIMKH9aStP6VXDedB7zC+FSB6esde53xnJ00GzI6DfcI12v6ZgxA50OaTIrh7Xt7Tgh0s8aZuFnyJ8NSPNjYgfYluWMkFueTwiOW9L1HlIpu27A5AeO7xkd8NXekq0mcXt7cogXNiv63lOk0v38waTZ/eqz5PdPzHZB1e55gO3Z/G5vA+yPcSKs4EGcllpwYyTmDAHR8pSIH87ly3jwebmS1AEoY0BHWqGHkhoij+naazByar9Kj6SU768ZCq7E2hfNjeDvknje2OtPiBdI xTtI+vn5 nHA17Y36w2LZWd366RNvJT4CDvnPzm/qx3oqcO4NOUalqTk3ElSODaoQ4NOtUrT7H7vb/NmscK2c+GRGgyLnI4F5R+LH8zjLZlODG8R2Zf6j15vKq8NloP71nCExY18U9l+gvWyKZRDU/+5y932QMoTGv3MdsrMsc6NYytXdu6DKYxqYuM4u/+RC6I/hNLfZTJde7XGD24G+FErYxeLqPXkkeFEzToIcAvVgEBrQ0LlEx5RLw2t9ICldD38Pyvv72UXonm5kE+NhfERWZ6JauKCX7AZxIwCYdZ5pmVVMldsDX8zNuziGBcU2uEfwlO52rBLWsPiLX1aXHskrptQIEQ8ScqXPL3YzExxVhOeINu7sD+DcWzAF+UDEjZCBV3w9kED+lkxzTcDj7Pss1g29AzfuXFLdvClPBnNBbAaNNKohKCuVgX7oOuLETxMoQHx1ad37kN8cGJWtfwPUdeDjbqgKeHBPInemAQItDlonXs6wq+GfTFCMkXFjhC5e9EliS40AGCv1r4/7fq4Z46KqGbLzihG4s1RkLaJDyRBIfZjcz9VJUmVzMEnD6IbnUodTATkiB 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 07.07.25 16:23, Pankaj Raghav (Samsung) wrote: > From: Pankaj Raghav > > Add largest_zero_folio() routine so that huge_zero_folio can be > used without the need to pass any mm struct. This will return ZERO_PAGE > folio if CONFIG_STATIC_PMD_ZERO_PAGE is disabled or if we failed to > allocate a PMD page from memblock. > > This routine can also be called even if THP is disabled. > > Signed-off-by: Pankaj Raghav > --- > include/linux/mm.h | 28 ++++++++++++++++++++++++++-- > 1 file changed, 26 insertions(+), 2 deletions(-) > > diff --git a/include/linux/mm.h b/include/linux/mm.h > index 428fe6d36b3c..d5543cf7b8e9 100644 > --- a/include/linux/mm.h > +++ b/include/linux/mm.h > @@ -4018,17 +4018,41 @@ static inline bool vma_is_special_huge(const struct vm_area_struct *vma) > > #endif /* CONFIG_TRANSPARENT_HUGEPAGE || CONFIG_HUGETLBFS */ > > +extern struct folio *huge_zero_folio; > +extern unsigned long huge_zero_pfn; No need for "extern". > + > #ifdef CONFIG_STATIC_PMD_ZERO_PAGE > extern void __init static_pmd_zero_init(void); > + > +/* > + * largest_zero_folio - Get the largest zero size folio available > + * > + * This function will return a PMD sized zero folio if CONFIG_STATIC_PMD_ZERO_PAGE > + * is enabled. Otherwise, a ZERO_PAGE folio is returned. > + * > + * Deduce the size of the folio with folio_size instead of assuming the > + * folio size. > + */ > +static inline struct folio *largest_zero_folio(void) > +{ > + if(!huge_zero_folio) Nit: if (!huge_zero_folio), but see below I assume this check is only in place to handle whether static allocation failed, correct? > + return page_folio(ZERO_PAGE(0)); > + > + return READ_ONCE(huge_zero_folio); READ_ONCE should not be required if it cannot get freed. > +} > + > #else > static inline void __init static_pmd_zero_init(void) > { > return; > } > + > +static inline struct folio *largest_zero_folio(void) > +{ > + return page_folio(ZERO_PAGE(0)); > +} > #endif Could we do: static inline struct folio *largest_zero_folio(void) { if (IS_ENABLED(CONFIG_STATIC_PMD_ZERO_PAGE) && likely(huge_zero_folio)) return huge_zero_folio; return page_folio(ZERO_PAGE(0)); } -- Cheers, David / dhildenb