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 8DC1DC5B549 for ; Thu, 5 Jun 2025 00:54:03 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 2C9F76B015C; Wed, 4 Jun 2025 20:54:03 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 27B086B015E; Wed, 4 Jun 2025 20:54:03 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 190D36B0161; Wed, 4 Jun 2025 20:54:03 -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 E45F86B015C for ; Wed, 4 Jun 2025 20:54:02 -0400 (EDT) Received: from smtpin28.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay09.hostedemail.com (Postfix) with ESMTP id 7FC1580E64 for ; Thu, 5 Jun 2025 00:54:02 +0000 (UTC) X-FDA: 83519525124.28.57175F2 Received: from invmail4.hynix.com (exvmail4.skhynix.com [166.125.252.92]) by imf07.hostedemail.com (Postfix) with ESMTP id BAC5440002 for ; Thu, 5 Jun 2025 00:53:59 +0000 (UTC) Authentication-Results: imf07.hostedemail.com; dkim=none; dmarc=none; spf=pass (imf07.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=1749084840; 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=OF6E9kJu/NyCl2sJ7PaqR2FjTvcPnbkgR60TT50KvfE=; b=3pS1GzWKUwmAS4gL4lo9vbwKR09nW4ivhrLzOZirS00wvjurIMUdUBcijAUGNTksIWeX2L 8ez/SYondefTF2obxocywAidOhxuf/StsVtqKplswxf2hASgDyfMCrbWW7t3pjDld5d93i 9RbFT7VFgteDHa9i4KD2fgLZQzBRZno= ARC-Authentication-Results: i=1; imf07.hostedemail.com; dkim=none; dmarc=none; spf=pass (imf07.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=1749084840; a=rsa-sha256; cv=none; b=s2KCJidq9deyVQJkeQiOow/M0PNFJLVdM9pV3s17szjSL0VUVbv/7cKE4lrmfMZ+QI4NYY xwdj5nN6gjlJnZ0lpwJFXD30ycxOJ/h88C9htGjEiu8SNamiDk9KseVxNcSDN6TnQhe8SP 4DtXAzsu960jXl5vBGTxT02iToacgdM= X-AuditID: a67dfc5b-681ff7000002311f-13-6840eaa26553 Date: Thu, 5 Jun 2025 09:53:49 +0900 From: Byungchul Park To: Suren Baghdasaryan Cc: willy@infradead.org, netdev@vger.kernel.org, linux-kernel@vger.kernel.org, linux-mm@kvack.org, kernel_team@skhynix.com, kuba@kernel.org, almasrymina@google.com, 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, mhocko@suse.com, horms@kernel.org, linux-rdma@vger.kernel.org, bpf@vger.kernel.org, vishal.moola@gmail.com Subject: Re: [RFC v4 02/18] netmem: introduce netmem alloc APIs to wrap page alloc APIs Message-ID: <20250605005349.GA37659@system.software.com> References: <20250604025246.61616-1-byungchul@sk.com> <20250604025246.61616-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: H4sIAAAAAAAAA02Sa0hTcRjG+++cnR2Xq9O6/U0qWmViZBeC3ihUiOAEFVlkdIEcemrLabLp mkGgaUgjV2l0WUtWI1tTmS4vS2LmGt66KIvkdNUsg8IKnYk6L3mUyG8P7/O8z+/98NKE/K54 Ca1Oy+C0aUqNgpKS0p+h99bZfsSpNnz3kGBxllFQOmSAB11uMVgcNQgGht9LIOBrosB2d5AA S1seCX+cIwT0NHZLoLPkGwlP8msJ6L7cTEFBXpCA8267CNprTGK4NnKfgNrsLgm8rrNQ8Kls QgzfvAUktJgfktBpioNG6yIYfN6LwOesFcHgpTsUFPmtFHzJ60Tgf9ZNwu0cEwKnhxdDcMhC xa1gqx6+FbGPzR8lrNWVyT6yR7FG3k+wLsdFinX1F0rYDx1PKLb5ZpBkH7sDIrYg9xfF9vW8 I9nfnjcU66x6Q7IvrD4JG3At28cckW5P5jRqPaddH5MoVQUaikTpL+UGT2OvJBuNhRpRCI2Z zbipzkYYET2lv5RHCJJkVmFTQ7yQoJg1mOeHCUEvYKJwUeADZURSmmC6xfhesAIJxnzmMK7k eZGwK2MA/2pRCRk5Y0e4vbWHEjIyZh5uufWVFDQxWTpa7J/CEkw4fjBOT4+X49zq21OsECYe D09UT8UXMivx05omkdCJmac0Lq58QUyfH4Yb7Dx5Bc0zz0CYZyDM/xHmGQgrIh1Irk7TpyrV ms3Rqqw0tSE66XSqC00+Tsm50aNu1N9+wIsYGilCZYnxcSq5WKnXZaV6EaYJxQJZ4o9YlVyW rMw6y2lPH9dmajidF4XTpGKxbNPgmWQ5c1KZwaVwXDqn/eeK6JAl2eiUes+hYGvd6l1Gf1A1 UW8rT8q/f9UxKzM5Z7Qf+7gbhTvm9s2WBUoiYq57FdTH/dHIvXNsq/uEodQW9p5fKx+rj9wW +fmKZ0ssLx4f33BnZKk65QJR8SohPcFzbE6Za+3eek8kOtlqqN7dljiamzGAupqfJ0Weqb7s ijjYoV+hIHUq5cYoQqtT/gXxo/aRNAMAAA== X-Brightmail-Tracker: H4sIAAAAAAAAA02Sa0hTYRjHe885OzsuJ8dldVLEWlEySSsKHkhy9MW3oMs+dSFsKw9tOGds aSpUmtJl5LooXeaqpZiXtOUyLxGiU9RpVkyKldZipYiJVjNzruuKyG9/nv/v+T1fHoaUFAoi GY3uCK/XqbRSWkSJtm8sWF02JlevqfTLwGKrpeHOTDZUvm0WgKWmEcGUf1AIvs5uGspvTZNg eVpIwRfbLAnDXV4heG6PUPDodBMJ3vM9NBQVBkg42VxFQMd1pwCeNZoEUDJbQUJT3lshDDy0 0PCm9qcARhxFFDjN1RR4THLosi6C6b5xBJ22JgKmz12nodhlpeFdoQeBq8NLQWm+CYGt1S2A wIyFlktxQ/VLAreYXwux1Z6J71fJsNHtIrG95iyN7Z8vCfHQi0c07rkaoHBLs4/ARQUTNP40 /IrCk63PaVw++pHAtobnFH5s7RTuDN8rSkzltZosXp+wSSlS+9qLicP9kuzWrnFhHvoeakQM w7HruXd1K4ORYldwpnaFEYUwNLuKc7v9ZDBHsDKu2DdEG5GIIVmvgCsL3EPBYgG7h6t3u4ng rpgFbsKpDjIStgpxz3qH6SAjZsM557X3VDCTv6XfbrjIIE+yUVzlD+bvOIYreFD651YIq+D8 Px/8wReyy7m2xm7iAgozzzGZ55jM/03mOSYrompQhEaXla7SaDfEG9LUOTpNdvzBjHQ7+v0b t499u9iMpgaSHYhlkDRUrFTI1RKBKsuQk+5AHENKI8TKsSS1RJyqysnl9Rn79Zla3uBAUQwl XSzeuotXSthDqiN8Gs8f5vX/WoIJicxDy9t3nLIndVwObVn3ZV/cHWe0Qj6au6MvZmAs8mZd lPNMyivTtq0pCWGl5OJ5KR/COBSrGPmaX/1j/kT08YB1mqpb+iHWt7k/VXL6flrFsqNm113p vZyh2SuewdndpxoSp3pj8/N8qYnaA0RJXMxaZf2kd0tjm2PJPmrek/pk3YkZKWVQq9bKSL1B 9QvNR7qxFwMAAA== X-CFilter-Loop: Reflected X-Rspamd-Server: rspam01 X-Rspamd-Queue-Id: BAC5440002 X-Stat-Signature: qa99o6xafydqgstd7nu1uapximhffgj5 X-Rspam-User: X-HE-Tag: 1749084839-574277 X-HE-Meta: U2FsdGVkX19ocZp03ZNm8ZieYejsljEwHXlgI06MWBACSFhGxt+3bWk4iS9EorEfvAasuoOAUvGiVfZjyMeyB+jsvd/SRTMnfTOX2SU4S/arm1Oqy+57vLIvAXcpoQSqu2GfzmxmQXwSBMvTxnPolx9BD8z8uFBvpvgz/y6PgHeB3TO1yl4k+wPiugfbv6JkA2OlTVeUbNnjUV9SK+wR0Tn0eXQU4V9XF9UxS5IuLyW3ykI/LWIzSi+CeMOK650fEMGNY0SzXP8ycl3Nn7gisaoasMY1wxI297dgfLdLoipwnofoeeTiZ80YXWoefi2Dt8xzxVywQyI8fQB0FcfyuDxOSDc5dUkZPc90ZDpbjLEhrT5VRV3TlVmcvm5/2aplRINOyKBAK5if9VsgEVq4m7KmDG7mUyDl7I32V9LKbM68psSTTLIeuhjFTXdvyC/wBIwRFsZzKhLl5rz36DBzMYyo09tu6VlOEAXQTG3kiJjwewMlXEE3MN1tq9QB0cTldVI8YK5k+dB3djWJHexcd0VWEvIT7n+PQLf5gAaEmDWeNo38siMLJxZvufIVxfcg+zWg5qInbsARj+scz8W++M62HZidNaKa1WCIyw0qKn88GJweAb5e7pgooLBMektYlmkmBLlS5oHHVNHoQejnCzpfRcJQ1md5Clquc7PEf6CFwYGM6yBOBCfvSdF3COmQXhAPxMVq9xz1q7dYjpaO+hEKZzVJYhxEjfn7mZlE6QnOemjzgv1d2ZfsMG+DxpOgaAAyta9D4VetTf7ct8i+YrZjz8eUOz/F3sIHWsZj02bEvaJPW+4JoWXiv21lzZMdd7IejeWZ0uwOXDtjZPy+7vET0HiS5iVey70aJ7yHszwSRYYLGN1/816AQoBUfspAs3U4X9E6sKTXUnfq/APhB1KtoDlQX1tD0IdXmne8xQ68yocMLXHU2HNOa2aSYszF7WTPYJLOPdziZ5cYVLm y2BTIOdh Hz9RVkeUtEljJNlSQfDJtpvoQj8s02ImZJJfOYDBOQRr5ziI0TxHNsFi05dD/U45EgS0JIihx7aVsxsMvV3VTwmQbD26c7LhM139SvrnNNcnzqW0= 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 Wed, Jun 04, 2025 at 08:14:18AM -0700, Suren Baghdasaryan wrote: > On Tue, Jun 3, 2025 at 7:53 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 > > --- > > net/core/netmem_priv.h | 14 ++++++++++++++ > > 1 file changed, 14 insertions(+) > > > > diff --git a/net/core/netmem_priv.h b/net/core/netmem_priv.h > > index cd95394399b4..32e390908bb2 100644 > > --- a/net/core/netmem_priv.h > > +++ b/net/core/netmem_priv.h > > @@ -59,4 +59,18 @@ static inline void netmem_set_dma_index(netmem_ref netmem, > > magic = netmem_get_pp_magic(netmem) | (id << PP_DMA_INDEX_SHIFT); > > __netmem_clear_lsb(netmem)->pp_magic = magic; > > } > > + > > +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); > > +} > > Note: if you want these allocations to be reported in a separate line > inside /proc/allocinfo you need to use alloc_hooks() like this: Ah, it looks better to use alloc_hooks(). Thanks. Byungchul > > static inline unsigned long alloc_netmems_bulk_node_noprof(gfp_t gfp, int nid, > unsigned long nr_netmems, > netmem_ref *netmem_array) > { > return alloc_pages_bulk_node_noprof((gfp, nid, nr_netmems, > (struct page **)netmem_array); > } > > #define alloc_netmems_bulk_node(...) \ > alloc_hooks(alloc_netmems_bulk_node_noprof(__VA_ARGS__)) > > > > > #endif > > -- > > 2.17.1 > >