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 56B50C5AE59 for ; Wed, 4 Jun 2025 02:53:46 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 24E956B0565; Tue, 3 Jun 2025 22:53:11 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 1FF516B0568; Tue, 3 Jun 2025 22:53:11 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 09F426B0569; Tue, 3 Jun 2025 22:53:11 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0011.hostedemail.com [216.40.44.11]) by kanga.kvack.org (Postfix) with ESMTP id DEF946B0565 for ; Tue, 3 Jun 2025 22:53:10 -0400 (EDT) Received: from smtpin09.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay08.hostedemail.com (Postfix) with ESMTP id 96C26141FC0 for ; Wed, 4 Jun 2025 02:53:10 +0000 (UTC) X-FDA: 83516196540.09.A688DF9 Received: from invmail4.hynix.com (exvmail4.skhynix.com [166.125.252.92]) by imf21.hostedemail.com (Postfix) with ESMTP id E9E411C000C for ; Wed, 4 Jun 2025 02:53:08 +0000 (UTC) Authentication-Results: imf21.hostedemail.com; dkim=none; dmarc=none; spf=pass (imf21.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=1749005589; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:content-type: content-transfer-encoding:in-reply-to:in-reply-to: references:references; bh=vccctN70Q+I1Vhsj7nYiZ0E26L9PYV3HSiXPoU6+pR4=; b=5st+FxPYG915JuCiXT/XgblFTaPd5/HcLK7LCKsHbf98AR6Crdw5Ln40DAYpdQdUyRYf43 5PvapcqLFE2INfaeAsjJ0EiLm6ZHYLeoidjF37JMIrqUFk05qp78DSUHYhHxWgpGRAcyA+ sWGtqiQxb5P0/HYH0seZOxHC7fzsIFg= ARC-Authentication-Results: i=1; imf21.hostedemail.com; dkim=none; dmarc=none; spf=pass (imf21.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=1749005589; a=rsa-sha256; cv=none; b=EC4ETdiXJ3IbD10FcWP15rSMuHICK8y22F8pFyBoEGkqx1MlcZLrSuKsnFpc5ZOK+CddOh r2fBOvRTXIh3fH8NA/JUFWeBo8patlbahOLBV5ol689vHDbd+PB+7STudc3fk1VJteGllz lwK3HfH4qQ37H0s/Os2+4ppxj4n7flA= X-AuditID: a67dfc5b-681ff7000002311f-5b-683fb50a8f99 From: Byungchul Park To: willy@infradead.org, netdev@vger.kernel.org Cc: 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, surenb@google.com, mhocko@suse.com, horms@kernel.org, linux-rdma@vger.kernel.org, bpf@vger.kernel.org, vishal.moola@gmail.com Subject: [RFC v4 16/18] netmem: introduce a netmem API, virt_to_head_netmem() Date: Wed, 4 Jun 2025 11:52:44 +0900 Message-Id: <20250604025246.61616-17-byungchul@sk.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20250604025246.61616-1-byungchul@sk.com> References: <20250604025246.61616-1-byungchul@sk.com> X-Brightmail-Tracker: H4sIAAAAAAAAAzWRa0hTYRjHe3fenR1Hg8OSPCkkDSKSMg2z50OZdIG3MMiyCwnW0EMbTWfz XgZWVqRuiRqJzlhl6rw0mbbNEKk1b5V5y1g60yYagRo5HZVGqdG3H//n//99eRhK2o79GWVS Kq9JkqtktBiLZ9Y+2i5+tk8RopsJAb2pnoa6H5lQPW4Tgr7WgmD+54gIPI5OGh4/9FKg783F sGD6RcFkh1sEY1VTGFpvWylw3+2iQZu7SMF1W40A+iw6IZT8ekKBNWdcBIPP9TR8qv8jhCm7 FkN3mRHDmC4SOgzrwftmGoHDZBWAt6CChuIBAw0TuWMIBl65MZRf0yEwtTmFsPhDT0duIs3G jwLSUjYqIgZzGmmqCSJ5zgGKmGvv0MQ8VyQirg+tNOkqXcSkxeYREO2NWZp8nxzG5FvbEE1M zUOYvDU4RMRj3niMPSvek8CrlOm8ZkfEebHi9pQHJz9iMg3VX6kcNE3nIR+GY8O4p0sG/J/z 9BWCFabZLZzT+ZNaYV82lPO4O5c7YoZiZ4XcpH5xtbSOPco5G0ZXRZjdzPW4y0UrLGHDOe+X CeqfNJCra3yxyj7LuWv2/upWyu7itLb31IqUY2dEXFFOK/o32MC9rHHiQiQxoDW1SKpMSk+U K1VhwYqsJGVmcLw60YyWn1t1dSnWhub6TtgRyyDZWonNFaGQCuXpKVmJdsQxlMxXErh1OZIk yLMu8xr1OU2aik+xowAGy/wkO70ZCVL2gjyVv8jzybzm/1XA+PjnoHzHtgMn1cct/T1xluIJ dXy/ViBJC9cVNMlG9l+pO6huzDZmJMT1DeZ1n74XkxtjbFxKGx4uiQ6I9nH5GbOn5VWFl26q TpEWZ/tnKD2kDOUG9w+HTjYsxJ7pPXxrqrLJt9LyO3H83fzrB+6F/OaoI1FOa2xYbcVe627C YCNVL8MpCnloEKVJkf8FS5IIfNgCAAA= X-Brightmail-Tracker: H4sIAAAAAAAAAzWRbUgTcRzH/d/dbudocM1RhwbiIKRJppDxA8PshXYJRlAQJJFDDzedD20q GhSWgjXcephU6ISV5mOyWDanyao5dGaSzbRVPjGZPSCr3JwPE0qN3n34Pr35UrionYikFEWl nKpIppSQAkJwKrn6oOD5MXmC60cUGExPSOhaq4C2eSsPDJ0WBIH1L3zwO4ZJaH4YxMHwroaA FdMGDt4hDx/mWhcJGKjtxcFzy0mCtiaEw3VrOwaDTSM8GLfoeFC/8RiH3qp5Pkz0G0iYffKH B4t2LQEjDR0EzOlSYci4B4KjSwgcpl4MgnVNJOhdRhIWauYQuAY9BDRe0yEw2dw8CK0ZyFQJ 29PxCWP7Gmb4rNFcxj5rl7IatwtnzZ03Sda8fJfPTk8NkKzzQYhg+6x+jNVW+0j2t/czwf60 TZJs87dfGGvqmSTYt0YH//Tu84KjuZxSUc6pDqVkC+S1i36i5BFVYWz7jlehJVKDwimGPsxo DE3YNpN0LON2r+PbLKYTGb9nmNAgAYXTPh7jNYR2QhF0JuPuntkpE/R+ZszTyN9mIX2ECX5d wP+NRjNdT1/tcPiWPu27v9MV0UmM1voBv40ERhTWicSKovJCmUKZFK8ukFcWKSric4oLzWjr v9Yrm3esKDBxwo5oCkl2Ca3TKXIRT1auriy0I4bCJWJh9IEtSZgrq7zMqYovqsqUnNqOoihC sleYcY7LFtF5slKugONKONV/F6PCI6tQlmtGn5MWKLmUH+No6c6IT0+Ji/a/PHt188XyHOY8 /r6iz5uwb3xM2GO9IJZYVupXRsKS12LWcg2rDWaftM6Ulp6fmKBvybJN6YMfT8a2e0dVm9Fk a04zo8vpX3mzcG+8K68uELyRpoh57ZyNq121SdctZzLjpI56fpg7ApMQarksUYqr1LK/M/SC xLsCAAA= X-CFilter-Loop: Reflected X-Stat-Signature: gzm7tppohqdubknsogaccyz4obrecdpp X-Rspamd-Queue-Id: E9E411C000C X-Rspam-User: X-Rspamd-Server: rspam02 X-HE-Tag: 1749005588-190197 X-HE-Meta: U2FsdGVkX1+cQKfb/AS4sLxXba6raf7OchYRTT/Tw6TfwQxSPJ990HHQQU+eH7E53d0woZstEn2NbOQs8NPVSnZn3+Ep+HfgkgHX4eKfsIvuIsg22hJ0HbbQTx6n4pNqCrqZBO/Otp+iBcXeA0XeU+zI5XyfPySfEoS7KMIfdGb/IOAz433qfWRsehptLr3k+gXnrdZwmNXe3DrtYMhzsC6bSHThjCKrctzfvLAookbDz6qaDqbBI1GbAJo9XM9z+GbSHkQxHp0Mf2CIOqCkEnzUXnJtAf8DJcFXaVv3PLymNbjdW7GdnN+B3p+baHS2C/0HG54tKGSssXyd2AcbXhWo9QFcYCvV6M5QgiIqZMG0nABWLQoz0jMFOShFVWk9kIlJn3NLNAi17PFgNIcsa1q+EapoYotCiiSvxLvct9uMyHmnNre7InY4Twaa/LicoGwk0PLIKfC2kcktR8dF5lFDYf8A8D185xvVTPZZSjSeGe6mFoIYEDVWPTLZ9VZOkcr0dSJYym0sS5eJnaELghMRwdKD43y4rNM2SBFvrFDVeY99/cpFklNfmNf7nG95v1VPai8eS4KCWV4M5TwwY2ps5YzJo+mp9uYkTh5pWoSprY+0osezeJchVuj8D05FwpHNmYtWd7sv2lCXQRgpCtKje3W+AjXOv3e6YHwEFvMd8l2xT1cRRKtLl8bXqkXKHtav7Ja3fzAvdWIG9YDCQ9nH94eX7ixbNVJKbwvN1c3Jnq/yd79mS+opMLZYh9WSkfuOkrffRVw7d+Tsxelc+g7lQSbiCPFiXgIuZr1LhBv2nZf4WiiOn8BlsLJ4ZviJJz1qL4wcDQ3nmCaOV3oCEQ== 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: 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 a netmem API to convert a virtual address to a head netmem allowing the code to use it rather than the existing API, virt_to_head_page() for struct page. Signed-off-by: Byungchul Park --- include/net/netmem.h | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/include/net/netmem.h b/include/net/netmem.h index d4066fcb1fee..d84ab624b489 100644 --- a/include/net/netmem.h +++ b/include/net/netmem.h @@ -265,6 +265,13 @@ static inline netmem_ref netmem_compound_head(netmem_ref netmem) return page_to_netmem(compound_head(netmem_to_page(netmem))); } +static inline netmem_ref virt_to_head_netmem(const void *x) +{ + netmem_ref netmem = virt_to_netmem(x); + + return netmem_compound_head(netmem); +} + /** * __netmem_address - unsafely get pointer to the memory backing @netmem * @netmem: netmem reference to get the pointer for -- 2.17.1