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 61280C71149 for ; Thu, 12 Jun 2025 20:54:43 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id C2FFD6B007B; Thu, 12 Jun 2025 16:54:42 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id BE18E6B0089; Thu, 12 Jun 2025 16:54:42 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id AF65D6B008A; Thu, 12 Jun 2025 16:54:42 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0012.hostedemail.com [216.40.44.12]) by kanga.kvack.org (Postfix) with ESMTP id 8D8856B007B for ; Thu, 12 Jun 2025 16:54:42 -0400 (EDT) Received: from smtpin08.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay10.hostedemail.com (Postfix) with ESMTP id 0AEA3C0175 for ; Thu, 12 Jun 2025 20:54:42 +0000 (UTC) X-FDA: 83547952404.08.8686675 Received: from mout-p-202.mailbox.org (mout-p-202.mailbox.org [80.241.56.172]) by imf30.hostedemail.com (Postfix) with ESMTP id D74D080006 for ; Thu, 12 Jun 2025 20:54:39 +0000 (UTC) Authentication-Results: imf30.hostedemail.com; dkim=pass header.d=pankajraghav.com header.s=MBO0001 header.b=iZwhEzvY; spf=pass (imf30.hostedemail.com: domain of kernel@pankajraghav.com designates 80.241.56.172 as permitted sender) smtp.mailfrom=kernel@pankajraghav.com; dmarc=pass (policy=quarantine) header.from=pankajraghav.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1749761680; 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: in-reply-to:in-reply-to:references:references:dkim-signature; bh=jMqfz5QP21cfg2NCOI8fXNl9RMD8SNqZRc2zFgJBMAw=; b=xn8wI7HMdM8Mv+5JhlLMVi6/9DcpU0Pzgy1i1kTINfXM+0vO9DRQpuBWkYg4gFMSKi6CZ9 6OyNu+J84Br88RDaXfp3t/5rbGp6kPFr9W/5UG4mkAre8UFXk8aXcv8NmMKsY6YGWaer9F Zn8y6pz2i1EuukIngCd6Vj4+SO/Rgck= ARC-Authentication-Results: i=1; imf30.hostedemail.com; dkim=pass header.d=pankajraghav.com header.s=MBO0001 header.b=iZwhEzvY; spf=pass (imf30.hostedemail.com: domain of kernel@pankajraghav.com designates 80.241.56.172 as permitted sender) smtp.mailfrom=kernel@pankajraghav.com; dmarc=pass (policy=quarantine) header.from=pankajraghav.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1749761680; a=rsa-sha256; cv=none; b=rt5U5qtvlmemJ39MphKxLgLy8fxYlPI6dsKSd/rq4M+DSsE61+cWP7/egZCN/TGHRzrk63 7cPQwU1PzuEgWuG67Pd4BxysqGAiiCAK0h5g++4BkDL4OvoZWRpdfM14rNiLB/byXCeSd3 EyWnQFstFhO1u16lwCqQnZJ2/AWSemI= Received: from smtp102.mailbox.org (smtp102.mailbox.org [10.196.197.102]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by mout-p-202.mailbox.org (Postfix) with ESMTPS id 4bJFBz4y5Jz9t7n; Thu, 12 Jun 2025 22:54:35 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=pankajraghav.com; s=MBO0001; t=1749761675; 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: in-reply-to:in-reply-to:references:references; bh=jMqfz5QP21cfg2NCOI8fXNl9RMD8SNqZRc2zFgJBMAw=; b=iZwhEzvYWF83q7vfuMaVVdkC7ni+BF6LjRTCNacgi7U44mGZxBYd2q/TXF7Ca3rRKYdItU NUgz7qHGRZMfSmTVAKhe3TxmO+Qk05M9l9tGcoW/2QwmlBvVxX64taW30RoE/wW+D11NOM djFNftsO30QF7YJfCkQ/GplV4f4hky6I9UiUH2Z+x1YSc8njtD4/CYqoiGHiakIvAc+dsK wAo6UxQlsBF1xc8KbSmLDnd8QliEucrqrX5UyPsP1s0nN/eW/4vkykI9RDo334phcgRNbq rTXu+RytbxrtPM8jeGB1yOpaJV3cAC0V4C6sFCmQXSnH4w3d8viTGkZ+Mr0R+g== Date: Thu, 12 Jun 2025 22:54:28 +0200 From: "Pankaj Raghav (Samsung)" To: Dave Hansen Cc: Pankaj Raghav , Suren Baghdasaryan , Ryan Roberts , Mike Rapoport , Michal Hocko , Thomas Gleixner , Nico Pache , Dev Jain , Baolin Wang , Borislav Petkov , Ingo Molnar , "H . Peter Anvin" , Vlastimil Babka , Zi Yan , Dave Hansen , David Hildenbrand , Lorenzo Stoakes , Andrew Morton , "Liam R . Howlett" , Jens Axboe , linux-kernel@vger.kernel.org, linux-mm@kvack.org, willy@infradead.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 Subject: Re: [PATCH 4/5] mm: add mm_get_static_huge_zero_folio() routine Message-ID: References: <20250612105100.59144-1-p.raghav@samsung.com> <20250612105100.59144-5-p.raghav@samsung.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: X-Rspamd-Server: rspam12 X-Rspamd-Queue-Id: D74D080006 X-Stat-Signature: job9exgsaankazrd1g6gky4w1ehzistd X-Rspam-User: X-HE-Tag: 1749761679-945628 X-HE-Meta: U2FsdGVkX1/6CFz2qrdMOfcch1BE/Bw3+GstJBaRvZBi6nQQPRlPN6ktzsZpnWrN8h4sWDYIcYahBQGXQWzUlqjC/kab5hktpsNeCzLUnKo9BTwtasJxbgsT9CqY5OtI/q0QFBbyP7NgVOIcDZDC8C2BPuCH/AV+edYfei6qXvnVAd79XkEjw1dpHdky3RzOZin/M24gnzQzVRjhBxdbn9N1mjunWNq2d61rrInWv2cWNvwuhc5QqNnQDXaMWxueW/zoOgH83Kfosj5gO1Dc3HaHPz9M8AN8d7AJrGEsiw/HBG4qX92F3T5SxtaIwP0TA+z0V1T3kiCRn8aATGsBIBN4LZ0dk4tY67bs9dE78JyP0janGdorqahF+5o9SIQL3rELXnvq5DvR9AdaHETftB2KfRrElyBEFWfI3zvY3N7kbjVzysUjf//3SQ5U0GMxsjNqmkY6LE7v5Y7rMov31TU45R8f8fccX+p4ViYEp1jfhnkJAZCeyHKB6yNTHwc1s5mZMfFQPzGpHuxaWf8wMzb86EknMIPZt99PlsgndON0pV9mHS47F42ir+naXOMB5PKw0FBDemMXTXWExlRX85dfyLT2yPtMTc42xx8tD6sy3gIQQkPvuj8+J1lD1PpU7xdDruVnDxjsVlvYFriZdxDCgZZ4ovdcD1Kw9bklxv5tyfTHfOaF7NUi8Qy9y15Yr7zBnZuOgxu/OX8t9bhci/VDuG47VT1fpcYjTq4UIohqPwtYEZ4qKh3VW+MR2XEm8MmUSYHkw6arIUrDk5A68rYk0ws5ljFD9rf4rOwPnlxT0IdvgOy/GSiUtihIkYzPVJQbJZAi2TjliFJo5TVGyR5CMQXX/JMfZAdBoAKPfemdGj+eIbCWpp1cllgoHEkavtnT4BVpLNVi9vyZ8+lOHkZA6yVWDlX3OwpwCq97PT6qVbAWvvDEoumh6y/Y7GJlTLnZlrLrbxuDYD8+0/8 OWeiYsYM YUTByXPvax0RlWfqewFmw2K/gm4DO/7URhtSZbcEUGrP1GlcbbOPP4xVpRhU/iu1iYUXdF7zh88mQTLmmX5s8OuXagdhd1iMZu+LIyZkuH4WdNSNCEF0f4zesN0fmh8qqdYkd5lPbsSjnbpzhruasmsYnG6Ss0frClGQeHfKZBbB1LJsV0u7mZc8Qjtpyckd+qWLoy9C9cqn98c7xK7iymD9jotEuD4AHG40qtgYmhmJVCmbJAFgn55D8OR7Kswp/ptJbst5DMJMgOpHg1yZNO7lvGONB5E4tZIwQizcCw9zpmcHl+CeYWmv6M44ft0SHL23FnQQMk40UIQQ= 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 Thu, Jun 12, 2025 at 07:09:34AM -0700, Dave Hansen wrote: > On 6/12/25 03:50, Pankaj Raghav wrote: > > +/* > > + * mm_get_static_huge_zero_folio - Get a PMD sized zero folio > > Isn't that a rather inaccurate function name and comment? I agree. I also felt it was not a good name for the function. > > The third line of the function literally returns a non-PMD-sized zero folio. > > > + * 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 *mm_get_static_huge_zero_folio(void) > > +{ > > + if(IS_ENABLED(CONFIG_STATIC_PMD_ZERO_PAGE)) > > + return READ_ONCE(huge_zero_folio); > > + return page_folio(ZERO_PAGE(0)); > > +} > > This doesn't tell us very much about when I should use: > > mm_get_static_huge_zero_folio() > vs. > mm_get_huge_zero_folio(mm) > vs. > page_folio(ZERO_PAGE(0)) > > What's with the "mm_" in the name? Usually "mm" means "mm_struct" not > Memory Management. It's really weird to prefix something that doesn't > take an "mm_struct" with "mm_" Got it. Actually, I was not aware of this one. > > Isn't the "get_" also a bad idea since mm_get_huge_zero_folio() does its > own refcounting but this interface does not? > Agree. > Shouldn't this be something more along the lines of: > > /* > * pick_zero_folio() - Pick and return the largest available zero folio > * > * mm_get_huge_zero_folio() is preferred over this function. It is more > * flexible and can provide a larger zero page under wider > * circumstances. > * > * Only use this when there is no mm available. > * > * ... then other comments > */ > static inline struct folio *pick_zero_folio(void) > { > if (IS_ENABLED(CONFIG_STATIC_PMD_ZERO_PAGE)) > return READ_ONCE(huge_zero_folio); > return page_folio(ZERO_PAGE(0)); > } > > Or, maybe even name it _just_: zero_folio() I think zero_folio() sounds like a good and straightforward name. In most cases it will return a ZERO_PAGE() folio. If CONFIG_STATIC_PMD_ZERO_PAGE is enabled, then we return a PMD page. Thanks for all your comments Dave. -- Pankaj