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 28FE3C3ABB2 for ; Wed, 28 May 2025 05:27:01 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id A05186B007B; Wed, 28 May 2025 01:27:00 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 9B4D36B0082; Wed, 28 May 2025 01:27:00 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 8CAB76B0083; Wed, 28 May 2025 01:27:00 -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 746BB6B007B for ; Wed, 28 May 2025 01:27:00 -0400 (EDT) Received: from smtpin01.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay03.hostedemail.com (Postfix) with ESMTP id 0D2B1B60B1 for ; Wed, 28 May 2025 05:27:00 +0000 (UTC) X-FDA: 83491182600.01.0BCE4C1 Received: from invmail4.hynix.com (exvmail4.hynix.com [166.125.252.92]) by imf26.hostedemail.com (Postfix) with ESMTP id 77C36140011 for ; Wed, 28 May 2025 05:26:57 +0000 (UTC) Authentication-Results: imf26.hostedemail.com; dkim=none; dmarc=none; spf=pass (imf26.hostedemail.com: domain of byungchul@sk.com designates 166.125.252.92 as permitted sender) smtp.mailfrom=byungchul@sk.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1748410018; 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; bh=acEOxSPRKblYt1zBwlIhfrrZX17fdYQ18+ymqKBl2fk=; b=tlRPPxpw7qPuuu4/fDc98VUP/hITCxG1RcZz7soea6qo5ytMmOu6QWvvOZNWIn+qHI4s6l GeAZlfSBhDTsRtM3BdODGGeXRi9w0ec/3qK5PAsNn54Ztt8mMGiq056oJgTotn6953L6mX hyHTutkWoxLI2kGIFZn8KWiVF3Ehqxk= ARC-Authentication-Results: i=1; imf26.hostedemail.com; dkim=none; dmarc=none; spf=pass (imf26.hostedemail.com: domain of byungchul@sk.com designates 166.125.252.92 as permitted sender) smtp.mailfrom=byungchul@sk.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1748410018; a=rsa-sha256; cv=none; b=Sda6Iv6CNQyrLENw7FT71pMtoh3S0fEhy+JV4FVdDsVfTijy8myT38QQBVnzb5wQVRnqx1 bYCd2NcZvCe/F0e+S5uCtO//E/XjiAiULIPHCV6RYD1JLeDU2xL7xobtbleYQU3E9uXxw7 H26vSmZJrCA+bSjxrHyHGrnbsfW0IOI= X-AuditID: a67dfc5b-681ff7000002311f-e8-68369e9f1f62 Date: Wed, 28 May 2025 14:26:50 +0900 From: Byungchul Park To: Mina Almasry Cc: willy@infradead.org, netdev@vger.kernel.org, linux-kernel@vger.kernel.org, linux-mm@kvack.org, kernel_team@skhynix.com, kuba@kernel.org, ilias.apalodimas@linaro.org, harry.yoo@oracle.com, hawk@kernel.org, akpm@linux-foundation.org, davem@davemloft.net, john.fastabend@gmail.com, andrew+netdev@lunn.ch, asml.silence@gmail.com, toke@redhat.com, tariqt@nvidia.com, edumazet@google.com, pabeni@redhat.com, saeedm@nvidia.com, leon@kernel.org, ast@kernel.org, daniel@iogearbox.net, david@redhat.com, lorenzo.stoakes@oracle.com, Liam.Howlett@oracle.com, vbabka@suse.cz, rppt@kernel.org, surenb@google.com, mhocko@suse.com, horms@kernel.org, linux-rdma@vger.kernel.org, bpf@vger.kernel.org, vishal.moola@gmail.com Subject: Re: [PATCH v2 02/16] netmem: introduce netmem alloc APIs to wrap page alloc APIs Message-ID: <20250528052650.GA9346@system.software.com> References: <20250528022911.73453-1-byungchul@sk.com> <20250528022911.73453-3-byungchul@sk.com> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: User-Agent: Mutt/1.9.4 (2018-02-28) X-Brightmail-Tracker: H4sIAAAAAAAAA03SWUxTQRSA4czdemmoXirqCIlLxaAk1AXR82AU3sb44h4jMdjIja0skqJY XEJliUoE90RKhSICZYklFUrdUJAA7ohoCgg1ICQqimwNUKNS0MjblzmZ88/D8LS8gPXjNXFH RG2cKkbBSRnpN+/84LzcdepVjmwlGC3lHJSN6aD4o50FY6kNwch4hwSG6xs5KMh30WB8ncbA qGWCht6Gbgk4i/oYeHCmmobuC00cZKa5aUixmylotmWxcHWikIZq/UcJvL1n5KCr/DcLfXWZ DDw1lDDgzAqDBtM8cD3vR1BvqabAdf4GB1daTBz0pDkRtDzpZiDndBYCS42DBfeYkQtbQipL 2ihy19ApISbrUXLHHEQyHC00sZae44h16LKEfHj/gCNN190MuWsfpkhm6neODPa2M2Sg5h1H LJXvGPLCVC8hw9aFW4W90g1RYowmUdSu3Lhfqu5sv0bFt83WpZtrkR6leWcgLx4La3Ht2VLq nxszh6fMCMtwW2sP7TEnBGKHY3zKvsIKfKvmEusxLThZ/Mp4yOM5QgRO/1rGeCwT1mPnuYco A0l5uWBG2KFvpaYHPvhp9idm+nIg/pnbMrmUn7Q/Lv7FTx8vwqlVOVMtL2Eb1t+3T3musBQ/ tjVSnp1YsPP4c03X30cvwLVmB3MR+RhmJAwzEob/CcOMhAkxpUiuiUuMVWli1irVSXEanfLA 4Vgrmvw6Rad+RtjRUPOOOiTwSOEtIxWhajmrSkxIiq1DmKcVvrKUTevUclmUKum4qD0cqT0a IybUIX+eUcyXrXEdi5ILB1VHxGhRjBe1/6YU7+WnR8EhO1N06cv3JV8O2MLmKH4NuZexSlvk saiOD9EO97aAxcntIW9Wjuw7EJ99LfVzf17XzV2PTuQuLNpq3WxX5qUOmuZa/QdstReedTnH d0sUbyqCqrZA6LfWWS+2j42G64rDC1/PCbxk113NfX47rG1PydeOwuYA19vwlyeL/cZ7fnxR MAlq1eogWpug+gPFO8XlNgMAAA== X-Brightmail-Tracker: H4sIAAAAAAAAA03SW0iTYRjAcd/vtM/h8nNZfmhQTUM0O5L2QCepoJcuwuhCqItc+dlmbspm Q4Ng6exgadkBak5bWToPMDHTZSY1JdOiQi2nVqt5JtM8ohmVUyLvfrwP7/+5eVhSeo72Z5Xq ZEGjlifIGDElPrAtfd2d/AjFxtnBFWCyljFQOp0CRV9sNJhKqhBMzHSJYLyhkYGCu1MkmN4a KJi0/iSh94VLBM7CPgpqz1eT4LrykoEswywJaTYLAfV5TTS8q8qm4cbPByRU67+IoLXGxMDn sj809NmzKGgyFlPgzI6EF+blMPVqCEGDtZqAqct5DFxvMTPQbXAiaKl3UZB7NhuBtc5Bw+y0 iYmU4criDgI/Nn4SYXPFKfzQEoozHS0krii5yOCKsWsi/PFDLYNf3pql8GPbOIGz0ocZPNrb SeGRuvcMLhj4QWBr5XsKvzY3iKJ8Dou3xwoJSp2g2bAzRqz41HmTSOrwTsmwPEd6ZPDKRJ4s z23hG7PGCbcpbg3f0dZNus1wwbzDMTNvXy6Ev1+XQ7tNck6af2OKd3spd4TP+FZKuS3htvLO i09RJhKzUs6CeIe+jVgY+PBNt3uohc/B/K/8lrkoO+cAvug3u/C8kk9/lDu/y5M7yOuf2Oa9 jAvkn1U1ElfREuOiknFRyfi/ZFxUMiOqBPkq1TqVXJkQvl57UpGqVqasP56oqkBz11F45leO DU207rMjjkUyLwkuD1dIablOm6qyI54lZb6StF0RCqkkVp56WtAkHtWcShC0dhTAUjI/yf5o IUbKnZAnCycFIUnQ/JsSrKe/HgWO3q/c1L9770hQHO416XJUQ+XtbQX3QgaFmIJQdfj1Hb+P 1W0I7Apu9vMQHXrjZ8kL8i7sj3oUYv3jkg+Hh6l0fdPfu8ZWx9uj2yNSktcO+aXe3TMmRQEu 37C4QTM1uFm33f/C3qhJ56r0gZqvKLLVo37FmfPVse+aL63MizP0yCitQr4plNRo5X8B5kAK NhkDAAA= X-CFilter-Loop: Reflected X-Rspamd-Server: rspam12 X-Rspamd-Queue-Id: 77C36140011 X-Stat-Signature: a91kajo6prfu1fgwd3zr7mmkpjoh9ruc X-Rspam-User: X-HE-Tag: 1748410017-26544 X-HE-Meta: U2FsdGVkX1/puf/gwYDjQHNRDzYLId72z0vFol+bTWr+P42Z6C7SivUNQQ1IAmr/yn4A6gAVYukg6BQ1D8Yq3MN5PXa3HDC9050yz54Zqrwk/iNTKSmfpbWg1KVuqXodR0jbWNV/js3/dihJ5z0bWhMFMdJktRoDFL1AYCB8fnxYACAtbmLp8ENfKjtZrglVnHkVABtXgeMSM7JnAe5UTEUi+dLJgyFlNPoh5XMLYUqut8p3k54B/GU0p4IDFVjaGgParFwZWrDL/vxNnSKWA+RM9Bv+EGhZXP5ZD+T1k9EIx+Y0F7LdYJ/pPyq8eE+1TFmQH8WExjd+7YO+gKHheDTxOwCe0oWGcfXo4tyqW5euHIBzOEcC1gZ9SVYG8bVcBzONfHgLJe5JamH4wONFfSob7QLtTRP8+QNmkJE4eKZLPsC04b84ne0wgn/HxUEyi1EBaIsO+FYbQKqmNg+guZag1Qj1pZTVdHT8KOTXtAKXZlzah37C9UOF+YaONdLugSHjE2Z8xXIn6WWyOqnYzE6OPdZ52ErwB2GXP4BadIdQKv7WfgoJSPTl0PLmNpLtnY8ELYLMTmjVA83AaTSo0J3hbbfVjY3mvYosr5VVgRJt1Kwhg7iEM0+c6n6+SyzzhV57SzZp6piT0JrAIAYn+4lgS/9YDg1BNTHGCfKK0GKZPoSp05L2KQuqc8ywIe2t5WiJiiW5hC4O5LFCaDZFVpcVjp3nexWXzQSoKXcFNKbIieVqGv3vIA== 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 Tue, May 27, 2025 at 08:11:58PM -0700, Mina Almasry wrote: > On Tue, May 27, 2025 at 7:29 PM Byungchul Park wrote: > > > > To eliminate the use of struct page in page pool, the page pool code > > should use netmem descriptor and APIs instead. > > > > As part of the work, introduce netmem alloc APIs allowing the code to > > use them rather than the existing APIs for struct page. > > > > Signed-off-by: Byungchul Park > > --- > > include/net/netmem.h | 13 +++++++++++++ > > 1 file changed, 13 insertions(+) > > > > diff --git a/include/net/netmem.h b/include/net/netmem.h > > index a721f9e060a2..37d0e0e002c2 100644 > > --- a/include/net/netmem.h > > +++ b/include/net/netmem.h > > @@ -177,6 +177,19 @@ static inline netmem_ref page_to_netmem(struct page *page) > > return (__force netmem_ref)page; > > } > > > > +static inline netmem_ref alloc_netmems_node(int nid, gfp_t gfp_mask, > > + unsigned int order) > > +{ > > + return page_to_netmem(alloc_pages_node(nid, gfp_mask, order)); > > +} > > + > > +static inline unsigned long alloc_netmems_bulk_node(gfp_t gfp, int nid, > > + unsigned long nr_netmems, netmem_ref *netmem_array) > > +{ > > + return alloc_pages_bulk_node(gfp, nid, nr_netmems, > > + (struct page **)netmem_array); > > +} > > + > > /** > > * virt_to_netmem - convert virtual memory pointer to a netmem reference > > * @data: host memory pointer to convert > > Code looks fine to me, but I'm not sure we want to export these > helpers in include/net where they're available to the entire kernel > and net stack. Can we put these helpers in net/core/page_pool.c or at > least net/core/netmem_priv.h? Thanks. I will. > Also maybe the helpers aren't needed anyway. AFAICT there is only 1 > call site in page_pool.c for each, so maybe we can implement this > inline. Sure. Byungchul > > -- > Thanks, > Mina