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 470C8C77B7C for ; Wed, 25 Jun 2025 04:34:24 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id A043E6B00B5; Wed, 25 Jun 2025 00:34:12 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 9DBB26B00B6; Wed, 25 Jun 2025 00:34:12 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 8F1CC6B00B7; Wed, 25 Jun 2025 00:34:12 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0015.hostedemail.com [216.40.44.15]) by kanga.kvack.org (Postfix) with ESMTP id 7CA846B00B5 for ; Wed, 25 Jun 2025 00:34:12 -0400 (EDT) Received: from smtpin22.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay04.hostedemail.com (Postfix) with ESMTP id 4990F1A0B05 for ; Wed, 25 Jun 2025 04:34:12 +0000 (UTC) X-FDA: 83592655944.22.E90037E Received: from invmail4.hynix.com (exvmail4.hynix.com [166.125.252.92]) by imf14.hostedemail.com (Postfix) with ESMTP id 47185100003 for ; Wed, 25 Jun 2025 04:34:10 +0000 (UTC) Authentication-Results: imf14.hostedemail.com; spf=pass (imf14.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=1750826050; 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=g0NnR9NzKTHI6eGEF49nx01YVJ65AYcvMMDxGij4vvk=; b=S5G7GgQRbuSXGTVBLhecF/ZA6eNWQLrK4ucCfLpSdPXCqfC1ZshRV+PtRimq/N0906XgZN 8Zspo+KDkjovZ8i3+O3QT7t06Ui4lfjtDm+wG+T0h4Kx5RT0tk4nARUE9oqrXF3E5FZGkr 7Akz2V3veKEPc0y4zmKl0RMHeWcPJQo= ARC-Authentication-Results: i=1; imf14.hostedemail.com; dkim=none; spf=pass (imf14.hostedemail.com: domain of byungchul@sk.com designates 166.125.252.92 as permitted sender) smtp.mailfrom=byungchul@sk.com; dmarc=none ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1750826050; a=rsa-sha256; cv=none; b=Y4eRDukAWprgsjDtwM9JcloAanWbwDWTmm+rb/LPKCzq8XTQ4EaMtz8pSa9eIO4MsbGmKC gQUkCuUxK8cgGqoy6N0v/7p4wCW5KSHHsQUEnO+quD9nQDTVwOvzdsGcMYXa4tfckndL4a S2wegI1sKuKvX+FwvKaIV/JUDUhncXw= X-AuditID: a67dfc5b-669ff7000002311f-27-685b7c397fc2 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, hannes@cmpxchg.org, ziy@nvidia.com, jackmanb@google.com Subject: [PATCH net-next v7 7/7] netmem: introduce a netmem API, virt_to_head_netmem() Date: Wed, 25 Jun 2025 13:33:50 +0900 Message-Id: <20250625043350.7939-8-byungchul@sk.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20250625043350.7939-1-byungchul@sk.com> References: <20250625043350.7939-1-byungchul@sk.com> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Brightmail-Tracker: H4sIAAAAAAAAA02Sa0hTcRjG++9/ds5xuDgtq9NFkmEWiyzL6u2KUMQ/IohuH+xDjjy40Vwy 02YUzNQicUu6kXPVMrKpk8lcusJuc2pR0TCKlXlh1QryglnLS2WbEvnt4Xl/z/O+H14Wy8rE 81i19qig0yo1clpCSfqiK5atO3FAtaKoNBYsDjsNNcN6uN3jFoOlugHB95EOBoa8bTTcvBHC YHlZSMEPxyiGT60BBmqcO6G7MkhB05lGDIFzT2gwFo5huD/Sz8Apt00EvgaTGC6O3sLQaOhh 4NU9Cw1d9nExBD1GCp6aqyjoNqVAq3U2hJ71IvA6GkUQKrlKw4V2Kw0fCrsRtDcHKCjPNyFw PPCLYWw43FHe0sWkxJPm3gFMXFVvReSuuZMhVmcOqbcpSLG/HRNn9VmaOL+dZ8j7N000eXJl jCJ33UMiYizop8ngp3cUGXjwmiYO12uKPLd6mV0zUiUb0wWNOlfQLd+cJlFZO7uZrJYovavC hA3IwBajKJbnknnTjz9UMWIn9Gl3RsSmucW83z+CIzqGS+KHAm1hRMJirpbmvfYOJjKYye3n 62y3JyCKW8TfsgfFES0N9xg6eujJ/oV8Td2jCSaKW81bAgVURMvCTNGbfDzJz+Cfln2cuAGH FzuuySI2DkcL7pTjyF6ec7O8sXYcTXbO5R/b/FQp4sxT4ub/cfOUuBXhaiRTa3MzlWpNcqIq T6vWJx46kulE4YepPPnrgBt98+3xII5F8mjpiqJUlUyszM3Oy/QgnsXyGOnltWFLmq7MOy7o jhzU5WiEbA+az1LyOdKVoWPpMi5DeVQ4LAhZgu7fVMRGzTMgq6lheNXX9dPJloqeUH7TuClp /te5X9wuU/Dhhke+ynhF/++iOPFIsK5Tsax9MGGNvSJR3SXs09T5ljPStJJpL2dl7Y7rvef2 HfNeTHjh3xqXdmmpaFOzLXk7n6iNXVJ23TXQd//sXj2b8vFhSCk17visr27ZtmCwqs/ys3FP fY6cylYpkxRYl638C/6lrRosAwAA X-Brightmail-Tracker: H4sIAAAAAAAAA02SXUiTcRTG++//fjmavS2tV0OFgZRSppB4Iim7kF6CyrrIMkpHvrXhnLKl aRTMz0hy9ik1V01NM11N1soVaqJWSqGiKFPTyVLpQvvSJJ1QWxF59/A8v/Occ3EYLHUTgYxS fVbQqOUqGSUmxAd2FmzdceG4IjJf7wtGi5mChp858HDCToKx/jmC+cVRGuY631JQXbmAwdhb SMAPyxKGqTcuGhqs+8FZO01A86UmDK6yLgpKC90YWhY/05BvrxNBx91uEvqe60m4uVSDoUk3 QcPASyMF4+ZfJEy3lxLQbXhEgFMfB29M62Hh3QyCTkuTCBau3KXgRr+Jgo+FTgT9HS4CKvL0 CCytDhLcPz0dFa/H6bhQvmPmC+Ztj4ZF/AvDGM2brFn807pwvsTRj3lr/WWKt36/TvMfhpop vuu2m+Bf2OdEfGnBZ4r/NjVC8F9aBym++tNXEW+xDRIJ0iRxbKqgUmYLmm27UsQK05iTznzt k2Or0mMd0jEliGE4djtXbD9TgnwYit3EORyL2Kv92ChuzvWWKEFiBrOPKa7TPEp7g3XsEa6x 7uEfiGBDuRrzNOnVEk+PbnSC8mqODeEaGtv+MD5sNGd0FRBeLfUwRUN5+C+/luu+M0l4b8Ce xZZ7Uq+NPaMFzyrwVSQxrKAM/ynDCsqEcD3yU6qz0+VKVXSENk2Rq1bmRJzKSLciz0vUXly+ ZkfzA3vbEcsg2WpJZFGSQkrKs7W56e2IY7DMT1Ie47EkqfLc84ImI1mTpRK07WgjQ8g2SPYl CilS9oz8rJAmCJmC5l8qYnwCdeiqO7Z4k3220jz8/nARmTzi74p3X8wpb6ulqlRKh+pW6HTX 8hL+aNuzpifxYF/Q481hA7sl873DJzLVRwOcG4PMVb4Js/e3BAy0TM7GxhWvigmIhuDQyzUh trhVPdKTu5LuSx4E7w4TNp+uvH7MdU578hD55FydIWjk1WR82Y5kfxmhVcijwrFGK/8NmtA4 EQ4DAAA= X-CFilter-Loop: Reflected X-Rspamd-Server: rspam03 X-Rspamd-Queue-Id: 47185100003 X-Stat-Signature: gy6435q67xccwbx3jm1grcs8thauzejw X-Rspam-User: X-HE-Tag: 1750826050-872404 X-HE-Meta: U2FsdGVkX1+ciJ4kROtAvLbnULsay6ba01/iRsGrO15uge30dHKbRvaqjW/t6d7m/u4bHqpUdW5I+2y/dGnehJ3Fvi9FCXFVV7N39vopAsvjuA4OCtpZTO5Ldan/vw5x0Sd/4RhJvTXprHV13t/2mZquDZDK1j37jH2LhX9O07XYO/xrQb7UwNKSPJrzXvP6bhtYmp5YdSoN4/GomkOmEPH+Gnv0nEjRWCNTmlbWVq5b8i79Wgcf4oFgfPC9TTX5Dz9Bo1t9H5kZctpv9KNzW2cHlGWIBhd+XcCns78RobrJQ7vkl5cNOVIHP8lWqpS2jfaAfIRsVxoGiK3+7IRzQSxxh472cSFvJYc5YBiTCWYT5GPXlUCH+MyVpvCsXm5ecc04AVsEM0LuBImcfiM1ataLetkgcN0vFZFqI86IaBbDmApberSyg4T7OyOn07b3eXd1kJDq9/+ODrrgs7vvjPoXNLbdlc1HSQ9VVrKi5cCf0fftxWEKIw3pfDjzIoMb4QyfZKrMThhb/w/kYtuh8vipoYzWGr8Hw406mvQy95YqMrT4xghO0uip0xHrcO5nqEQMrxZDZVlicTppMMkRwNCT/zkgCn5K9IQwupjX6bm/NwJCyFkQpClSZTiVWR04UjKyuRxSceI3DEhEu9e9Bqe3h5o8i9LCz997Oh+VY5zYwLQoCbalgwOzYPL6SqdOJIUBvHKLtZyY0TppTftErTrT7mhmA5muIcjtpjgffm6u4BCIrEH7jfuk9WJC4D/ObvYjlGUj0m/1DRcxECp4vwM5zTIlDy4yn5uyUhLyUd9C2IxO298asWFf2AobhYCKod733OBj3sHiCZH01f1tkPga2bWq5wf0FdzN8qfTn7Xmb5rIsFrAZrLaoX7t/VGPNsdRPuGvxZbWXRYU8lD5vGxLiLyfZ2zQbNqktcNkQIrA5+iKY0PQ8jA2BMrG6KmqZgh7kxVwYfIq9BM9Azb GJxaTXsl SStBZsJIFrSpzvtPSh50FIGHsLT/JBonkxF/wpI3FBOEDWaUaCNJQKuZCJd3MM69ZoZueDkFGQMHuTy5ozS9LBkfDsmoWR1JmrVdMsMnDfstguX/8zrQ+ZYK8iwdMw53xMrpbaFzPw2XWgs+e156efrxACuiRPjWmmuAzmmAMoJMyhrfAcE/g3SpR0ZoX/VJRFpzrrxk0T6WwdUoMpKwOrgcOvnHNi/8OQN8p+BfeRpGnAaFAozyczVnkMWuTLGEj+mqu+dgJ5YaClH1CdIM2TIk3Aw== 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 Reviewed-by: Toke Høiland-Jørgensen Reviewed-by: Pavel Begunkov Reviewed-by: Mina Almasry --- include/net/netmem.h | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/include/net/netmem.h b/include/net/netmem.h index 535cf17b9134..c7b1fc4b6c28 100644 --- a/include/net/netmem.h +++ b/include/net/netmem.h @@ -314,6 +314,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