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 E28C7C5AE59 for ; Wed, 28 May 2025 05:41:12 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 7FC6B6B0083; Wed, 28 May 2025 01:41:12 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 7D38B6B008A; Wed, 28 May 2025 01:41:12 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 710C66B008C; Wed, 28 May 2025 01:41:12 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0017.hostedemail.com [216.40.44.17]) by kanga.kvack.org (Postfix) with ESMTP id 50B2D6B0083 for ; Wed, 28 May 2025 01:41:12 -0400 (EDT) Received: from smtpin19.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay09.hostedemail.com (Postfix) with ESMTP id EECF880271 for ; Wed, 28 May 2025 05:41:11 +0000 (UTC) X-FDA: 83491218342.19.3D645C5 Received: from invmail4.hynix.com (exvmail4.hynix.com [166.125.252.92]) by imf27.hostedemail.com (Postfix) with ESMTP id 40A8F40013 for ; Wed, 28 May 2025 05:41:08 +0000 (UTC) Authentication-Results: imf27.hostedemail.com; dkim=none; dmarc=none; spf=pass (imf27.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=1748410870; 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=h4uJjAE7+I9D+m7VMTBl7eJUy/Kvh5RAH23MXhj3aA4=; b=ayoMc0xPfEC3+dY9a4Q94C8zupBgBdNDTEIUpteEVuHhTYDIhmZkX3tawfVBhdcGjPh1mz JR6F+Xi7SDOpjqb2A47yAFcB7OKPI1deb3PTVByWr3E7vLylkXkdvYIHFORsIkXPtLzo8z LeiSOWu0mzQRkLeBPk4CjgzMTbvUnLg= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1748410870; a=rsa-sha256; cv=none; b=BBFA9HEwNkLssb7ZeqaU6IyIuPBRasKXYHcqsZboWtF6T+rwZW3bWXWVuCvLSCjTPzDRj3 zy6ovo7YimJUAYJv9JbssHsaVs1dAj6LM+lO7oIF15km3HgQiKwZOpSBD/92XcssO8cfEw DFxnBD43I4ukY4qc+E+UJt62EisIfLw= ARC-Authentication-Results: i=1; imf27.hostedemail.com; dkim=none; dmarc=none; spf=pass (imf27.hostedemail.com: domain of byungchul@sk.com designates 166.125.252.92 as permitted sender) smtp.mailfrom=byungchul@sk.com X-AuditID: a67dfc5b-669ff7000002311f-bb-6836a1f3d4ed Date: Wed, 28 May 2025 14:41:00 +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: <20250528054100.GB9346@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: H4sIAAAAAAAAA02Sa0hTYRjHe3fec3YcDo4r603JaBVSlFZYPkWU9CFfuoBd6EPSZbRDW+mS maZ2YakhWpp2o9a0aTfTbLZsrpJRZl4qTDRjXa2VGmSlLsUblXNEfvvx3H7/Dw/PKIrYAF6r 2y/qdaoYJSfDsu++hfPdhUs0Cwa7/cFkuclB6UASXP9oZ8FUYkPwa/CtFNw1dRxcLuxnwPQi HUOfZYiB9lqXFNqudWCoyqhkwHWynoPs9GEGUu3FEmiy5bBwZugqA5WGj1JouW/i4MPNPyx0 VGdjaDDewNCWEwG15snQ/6wLQY2lUgL9J/I5ON1s5uBzehuC5scuDBeP5iCwOJwsDA+YuIgZ tOLGawm9Z3wvpWZrAr1TPJdmOZsZai3J5Ki195SUvntVxdH688OY3rO7JTQ77QdHe9rfYPrT 0cpRS0Urps/NNVLqtgZFCVtly9VijDZR1Ieu2CnTVHSZUNw5vyTHuc0GlC/PQj48EcKIu9HO /OOMTofEw1iYTV4OH8ce5oRg4nQOjs1MEuaQK4481sOM0MaSRtMeD08Uosmxb6Vj83IhnNzN 7eaykIxXCMWIOA0vJd6GH2m48AV7l4PJSEHz6FF+lAPJ9d+8tzydpN29OObyETYQwwNvNn9h Jnloq5N4bhLBzpMLmSVSb+ip5FGxE+ciP+M4hXGcwvhfYRynMCNcghRaXWKsShsTFqJJ1mmT Qnbti7Wi0c+5dngk2o56mzZVI4FHSl85LV+sUbCqxPjk2GpEeEY5SZ66colGIVerklNE/b4d +oQYMb4aBfJYOUW+qP+AWiHsVu0X94pinKj/15XwPgEGlLA7v9FGLlXeGjh0RNM+ryM0xbl5 4cEo2ZazloJZm1KiPq17Hvy7aPvnh4bwrV0tE62rtBPa16qjy5+Erk1IU8f+CFo6OVwmKrSB 6G3u+U5/TVMq9t3WFVlU0JO3pjYzz16vjrzfs7iMnaY73JpRGmaLWL2+deTr02Vxqze2uMpu 9ylxvEa1cC6jj1f9BdCSIPI1AwAA X-Brightmail-Tracker: H4sIAAAAAAAAA02Sa0iTYRTHe97Ls9fR4nVZvWURLUoSNKO0I0VJH+oh6AaVlB9q6VubTq2t hnahlYZkza6IrSkbVpoKS1s6S0ZMMS1JmxrrOrNSu1CWF9TZxSmR336c///8zpfD0fIz7BxO nXJY1KYoNQosZaSbV2WE9VmjVBH2HgxmWxmG0qE0KOpwsGAuqUTQP/xKAn11jzAUWgdpMDdn MjBgG6HhY32nBLy3uhioyaqiofNCAwZjpo+G045iCmrzG1loqcxh4erITRqqDB0SaL1vxvC2 7A8LXS4jA42m2wx4c2Kg3jITBp98RVBnq6Jg8Hw+hituC4b3mV4E7tpOBq6fykFgc3pY8A2Z cYyC2G+/oEi16Y2EWCqOkLvFoSTb46ZJRclZTCp+XpaQ189rMGnI8zGk2tFHEWPGN0x+fHzJ kO/OdkwKe3opYrO3M6TJUifZGrhbujpB1Kj1onbpmr1Slf2rGR3MDUxz5m43oHxZNgrgBH6F kNXtpPzM8IuENt85xs+YDxE8nmHaz0H8EuGG8xLrZ5r3ssJTc6Kfp/NxwpkvpeN9Gb9SuHex F2cjKSfni5HgMbRRE0Gg0HjtAzOxHCKMFrjHpNwYBwtFv7mJ8Xwh49718VsB/DbB8MAxzjP4 hcLDykfURTTNNMlkmmQy/TeZJpksiClBQeoUfbJSrYkM1yWp0lPUaeHxqckVaOw5bp0YveRA /a0bXIjnkGKqjNyJVMlZpV6XnuxCAkcrgmSn10ap5LIEZfpRUZu6R3tEI+pcKJhjFLNkG2PF vXL+gPKwmCSKB0Xtv5TiAuYYEN6pbY7O+60Peay24uAtzXnPD/xq8U2Pal9YfihhwTrrwLv3 DUM5YTfvZG0ILvgT/fjYSOywcf/SUztSazYldu8wjS5IzTRGSDSfenZN2Rwv2bczd1vTwPdw e2HY8bKB5vIt63lpnPtkYn3pPN+12YuD5hU/C9VY53421EbLXK7lMfsUjE6lXBZKa3XKvxHZ eCsYAwAA X-CFilter-Loop: Reflected X-Rspamd-Server: rspam10 X-Rspamd-Queue-Id: 40A8F40013 X-Stat-Signature: x9j7etxztewtzp7qqpm1ugkc8b13xbof X-Rspam-User: X-HE-Tag: 1748410868-251003 X-HE-Meta: U2FsdGVkX1/f56le3hughEBswZbMct5Ra8xqe+eUsu4mCr5VICm+5MB5qUyYMl5u60UPoSIdKxMg1KRmhwFNFZbpKjP551oXOASUGbyop9X3hkjnr1h8fP7vLe+Iti5BZa1laJCk6SKMb/OEBlrhgfqqBz1ziM0J89cWlnHjvJNfuhpjwAPjupER0E2QrL+Mr8wbCQHixFS/X47g3U8RVBw/0lVWn7UAJ/7oGAFJutTRXIeKPmbMyuTDn8HOCuknHX8uwO41cI8qI10Prs1aZ+nyhqG8WxaL3r+fZ1M2zJ+dN9etX3/mikJFnzj650oKWuAk7gShCPvHaeLzOopJKdc7IHDyfAHKQZasAQ6NN4bTbWqQ+ZTvFiSobZEr1D9OoUF7/+jAyPHuYjnvHhTWQTxYvUtT/XkiSj4FX4OszCDEUpsb0oKoWSTXiXjXaZj3ieIvXFJYxze6PhkS9Zbv6Ad3/GB+f0fsycIYnYSJjpfLfjd2/Thj95y/7uiSBNoIaQ4Sbuteb8dAIOfDHnXNLsYKA6isGVDRCa+0YARAh+nA3n9+XyfKtCp9ipYeq6BHu2C/dEKQzYsGyOQqOGDkrFRhbkVGifMZKAkHHjd72TeZ0tHKjcVGtroJ6MSafHGJ8CZH9PPnRTVuMCeqef6kixaQAN35iP0EbacYDL2akYQWWPESVYdiz/rHsWLHY9xCA7in/K7ga+tTsj5X//gi6g3zkEJgZmcMSGk1O7tVKM8R5QjvzLNJA7PQU+9aPsEW62jmoQJRIxT70qTaGwWV93Q85yBOQVIcAoK5wGSeqpdBKd6EZ7kNcB81XNalz0+EMhWatYQ4eRlV9Gu6Mt+zlFQcDGmB+sAomWuUOjJ6dH7ByXTpK4W9F5QAjA45wibQarazCtoje/+RU6EzYhRxxAJr5vhVA9A39CEfSqS7CbmWydQbJf5WcXK/lq5VEBYo54GcDNwFIcgxLlra1Z8 p2k+c/xm JZel7dfSCddUSS7CtFzPndEhD2GNQLCcGkqM5Ij9/8yWfF+oah1bTEpz/tghx+aIRniV+gdwnyg6uAjaK73pqEDYLHWBYSVVRZkKynmsttOzuVDk= 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? > > 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. Ah. I recalled the reason why I added these APIs this way, that is, to make the allocation method easier to be altered in the future. I will move it to net/core/netmem_priv.h but keep it in the header anyway. Byungchul > > -- > Thanks, > Mina