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 9149DCD1296 for ; Wed, 3 Apr 2024 17:28:16 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 13BDA6B0085; Wed, 3 Apr 2024 13:28:16 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 0ECD76B0087; Wed, 3 Apr 2024 13:28:16 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id ECF776B0089; Wed, 3 Apr 2024 13:28:15 -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 D027C6B0085 for ; Wed, 3 Apr 2024 13:28:15 -0400 (EDT) Received: from smtpin10.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay05.hostedemail.com (Postfix) with ESMTP id 7D49D40329 for ; Wed, 3 Apr 2024 17:28:15 +0000 (UTC) X-FDA: 81968904150.10.99785DD Received: from sin.source.kernel.org (sin.source.kernel.org [145.40.73.55]) by imf04.hostedemail.com (Postfix) with ESMTP id 3335040002 for ; Wed, 3 Apr 2024 17:28:11 +0000 (UTC) Authentication-Results: imf04.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=pJpsqN23; dmarc=pass (policy=none) header.from=kernel.org; spf=pass (imf04.hostedemail.com: domain of horms@kernel.org designates 145.40.73.55 as permitted sender) smtp.mailfrom=horms@kernel.org ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1712165292; 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=NRaKziUTXsE+PRXYtQZBw1pWY0Ye7yZDO7h6+zmhKmc=; b=ujjz0vuilJai+FNySgSctKkCNkb8vZI+rZ4Vvfmj7E4iOPhRDab/KfIqwm7dZfau+KAwWA MaD80dyBcdD5zmapQJOKJrrwRmEz8V1v5A4tLW5bAScx8CWeW8PPU3SyTqrFJ8ysi/amE9 XEGZomK6boAv/Wq6Y+YqYxx5GsQf/zI= ARC-Authentication-Results: i=1; imf04.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=pJpsqN23; dmarc=pass (policy=none) header.from=kernel.org; spf=pass (imf04.hostedemail.com: domain of horms@kernel.org designates 145.40.73.55 as permitted sender) smtp.mailfrom=horms@kernel.org ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1712165292; a=rsa-sha256; cv=none; b=hPTGCE0YAirMhbTVO2qY4NMilTJql7JZS4zBwKukiixuph49cta5h869d8naLXRdBQbKHb 1re5p40BxDKQ0FKAzXK03YQPSjXBjddhUySyqKo4iNO9u/7t9wxwJLSVP8mt36hLS8cMml c5TZzE2e95isbs6qOVOhbs80xley3C4= Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by sin.source.kernel.org (Postfix) with ESMTP id 57045CE2BCD; Wed, 3 Apr 2024 17:28:07 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 25477C433F1; Wed, 3 Apr 2024 17:27:51 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1712165286; bh=ev9qwjumkVBT21OJLnRxmj6j+tcZWLWc9gYIuhQP4YA=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=pJpsqN23a/bTPCDYI46/mddJ60857N8gxl0704dxwCHxM5gKzPHc731EgK6XTky8d UTSvCE/t886wLCwR1UtYWv7Xweb+uKowOagxSx/lUTLkXov7Dsf3h7EJVqcumDwZqs tOZb0mWrfqCf+8IONESe5080Pxu9nMjALf/FMnCDXF9xhUlL3R67eN2rH1I5mN6bzF 1n8OJA3VkfjnGjVp4Z+o4CVz2zIgJ7Dmv0gNexlQEtkyGLrPexZxzjQpZtQ6ml5ppR mZhUqv9H4p4rGkxe60L9FXP3YjGI6r2+YWhPDeKU2GGU7vXAeDQM5+N6jWyDCaqmEM CqEUGy0nok9lw== Date: Wed, 3 Apr 2024 18:27:49 +0100 From: Simon Horman To: Mina Almasry Cc: netdev@vger.kernel.org, linux-kernel@vger.kernel.org, linux-doc@vger.kernel.org, linux-alpha@vger.kernel.org, linux-mips@vger.kernel.org, linux-parisc@vger.kernel.org, sparclinux@vger.kernel.org, linux-trace-kernel@vger.kernel.org, linux-arch@vger.kernel.org, bpf@vger.kernel.org, linux-kselftest@vger.kernel.org, linux-media@vger.kernel.org, dri-devel@lists.freedesktop.org, "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Jonathan Corbet , Richard Henderson , Ivan Kokshaysky , Matt Turner , Thomas Bogendoerfer , "James E.J. Bottomley" , Helge Deller , Andreas Larsson , Jesper Dangaard Brouer , Ilias Apalodimas , Steven Rostedt , Masami Hiramatsu , Mathieu Desnoyers , Arnd Bergmann , Alexei Starovoitov , Daniel Borkmann , Andrii Nakryiko , Martin KaFai Lau , Eduard Zingerman , Song Liu , Yonghong Song , John Fastabend , KP Singh , Stanislav Fomichev , Hao Luo , Jiri Olsa , Steffen Klassert , Herbert Xu , David Ahern , Willem de Bruijn , Shuah Khan , Sumit Semwal , Christian =?utf-8?B?S8O2bmln?= , Amritha Nambiar , Maciej Fijalkowski , Alexander Mikhalitsyn , Kaiyuan Zhang , Christian Brauner , David Howells , Florian Westphal , Yunsheng Lin , Kuniyuki Iwashima , Jens Axboe , Arseniy Krasnov , Aleksander Lobakin , Michael Lass , Jiri Pirko , Sebastian Andrzej Siewior , Lorenzo Bianconi , Richard Gobert , Sridhar Samudrala , Xuan Zhuo , Johannes Berg , Abel Wu , Breno Leitao , Pavel Begunkov , David Wei , Jason Gunthorpe , Shailend Chand , Harshitha Ramamurthy , Shakeel Butt , Jeroen de Borst , Praveen Kaligineedi , linux-mm@kvack.org, Matthew Wilcox Subject: Re: [RFC PATCH net-next v8 06/14] page_pool: convert to use netmem Message-ID: <20240403172749.GP26556@kernel.org> References: <20240403002053.2376017-1-almasrymina@google.com> <20240403002053.2376017-7-almasrymina@google.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20240403002053.2376017-7-almasrymina@google.com> X-Rspam-User: X-Stat-Signature: xranjntsbjw46ow5ikadmkxq8gwxcnii X-Rspamd-Server: rspam07 X-Rspamd-Queue-Id: 3335040002 X-HE-Tag: 1712165291-718641 X-HE-Meta: U2FsdGVkX1/Kn/8e84YKJYuZ13inLeOEqWd+lzQnLZdtG+UtS2/0bZHMVyZi02O3H9QaFCZ91a/2AWqoy8wcIs0dKWl39QwGlZ3wWDgnxxQ8qXBrTqoZ6u7Oj5hGG4Ovy1hhQM3NtphgDrUfIEusuZ7YGdiBK+l7T3Ps6upS85ZMh7/gL/oY97y9EQNP5lLgEIhs9zjxfcHO+xR81Ax4hjd4g87mhplWth1bhBZUyFffnT2HzpIManjRmJ1KWDJmBPr5zWsyy/b23P3hiovGrHZBtHmiD60BzfNEtA6fNn06oaoW+gl+9tl2KDtNGiItVDvUe8uONU7Os1qNtyb2YO93icojNhkhMExEWeO8/qchPnR0u7JwVURKCV+s0AM2GibQD1/fpd4c3NVn5nz7nQtWk091gPGLd9cV9Mh/OvOwxxR7wKSeLkWlSDDTSdjgFaG8l2zek0ZfWSF4BYGb0A5jiPY6s7twwotVuS8eAP0ekHO8gCjhVdwZGkenINdPWsFqm2EDGsdWjAP/saKaqZmKuOzLPKCJ/Y5KqZYpwEKda6uaCVVlCOjLM80B3y5SdZd9ZQHsd5o9gpatm5EuWEuI5prm4TMDydud2Iw3R5d7UqGk2DFs5sLUJkQorbS85gY4OUb46U3OTpUzM8Kcs/Hte5wQXXpTYU8C59SySotTgunPZ/L7Xh+PGRrDghVoW5kcxvn5lz5MWWcVS4IFk4t5GK3VFjtbfNXGJpn7QIijp1dLG/t958k9ILG47KcCBkhhfV4W8fsWuThUuUL2jtzRyI6jHG+4Vs4Ndg3PFPT36eqltUkHrUfaJ5XitkyXHwbfsn/6ritn1iY60PWzV2M/5pakKtHoPUtmnJyoQ/J5Eb7BD/BSGYE96MBHpEE0ttWnht3m9/t9nOwcfyS/iHU/GvMCOhHdk+HFVB2Jonu2q8xfwjT/7iTyn2DR8CgDEz/fm0GOTVZVVnz98va IWhcoOk1 i+UJ1NogpaNVscthy4uIwCq2MfhfnI239WL6+6sJEP6umU/cRKliD6EScfP1AeyXti9IOHZiFblnIRSYP7F8CwsT8eQPYkO87uMV5245mM7Qvqa5u4C9OT2NhakbGyV6bTM097wTl092MbTIuA2NoRqF8C12/enng6xcuU3hq5RsvZ470zU7msxUoLd8iSwrWpHWSQ1EdxKlLAq8HkfeMuDNp1ZY5P4jTtBQVQXQ5hLIidk5uvMLUh6eZYi1xxMl7vN5WS6u6T6Nb5PALSE01r7grS0o8xS/qXIU4yZbj4m9JmrUoDyg6vHAHfSzecWWTlQ4dGYa5eo+0L4Q= 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, Apr 02, 2024 at 05:20:43PM -0700, Mina Almasry wrote: > Abstrace the memory type from the page_pool so we can later add support > for new memory types. Convert the page_pool to use the new netmem type > abstraction, rather than use struct page directly. > > As of this patch the netmem type is a no-op abstraction: it's always a > struct page underneath. All the page pool internals are converted to > use struct netmem instead of struct page, and the page pool now exports > 2 APIs: > > 1. The existing struct page API. > 2. The new struct netmem API. > > Keeping the existing API is transitional; we do not want to refactor all > the current drivers using the page pool at once. > > The netmem abstraction is currently a no-op. The page_pool uses > page_to_netmem() to convert allocated pages to netmem, and uses > netmem_to_page() to convert the netmem back to pages to pass to mm APIs, > > Follow up patches to this series add non-paged netmem support to the > page_pool. This change is factored out on its own to limit the code > churn to this 1 patch, for ease of code review. > > Signed-off-by: Mina Almasry ... > diff --git a/include/net/page_pool/helpers.h b/include/net/page_pool/helpers.h ... > @@ -170,9 +172,10 @@ static inline void *page_pool_alloc_va(struct page_pool *pool, > struct page *page; > > /* Mask off __GFP_HIGHMEM to ensure we can use page_address() */ > - page = page_pool_alloc(pool, &offset, size, gfp & ~__GFP_HIGHMEM); > + page = netmem_to_page( > + page_pool_alloc(pool, &offset, size, gfp & ~__GFP_HIGHMEM)); > if (unlikely(!page)) > - return NULL; > + return 0; Hi Mina, This doesn't seem right, as the return type is a pointer rather than an integer. Flagged by Sparse. > > return page_address(page) + offset; > }