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 51C8BC71155 for ; Fri, 20 Jun 2025 04:12:54 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id F0BE26B009B; Fri, 20 Jun 2025 00:12:47 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id E96676B0098; Fri, 20 Jun 2025 00:12:47 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id D0F1A6B009A; Fri, 20 Jun 2025 00:12:47 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0016.hostedemail.com [216.40.44.16]) by kanga.kvack.org (Postfix) with ESMTP id B22996B0096 for ; Fri, 20 Jun 2025 00:12:47 -0400 (EDT) Received: from smtpin15.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay04.hostedemail.com (Postfix) with ESMTP id 7CA771A0250 for ; Fri, 20 Jun 2025 04:12:47 +0000 (UTC) X-FDA: 83574457974.15.D976412 Received: from invmail4.hynix.com (exvmail4.skhynix.com [166.125.252.92]) by imf13.hostedemail.com (Postfix) with ESMTP id 7C39720006 for ; Fri, 20 Jun 2025 04:12:45 +0000 (UTC) Authentication-Results: imf13.hostedemail.com; dkim=none; dmarc=none; spf=pass (imf13.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=1750392765; 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=yyRcnXVcMvC7TEbsGUeepi8VwzJRdkfncvCVi5OUWUU=; b=jbA5TjkFGIdZ7/ND7bwi9oY/dKp2JxxVVmuL1MPbzXIn0M0p7KRo45TSCkIaYcoxMVsu8w vHZfSJfG2NhcczJV/KMLp6sM6bNmAdRzoCX71TTXFcwdXvUbIrrDSxqQMNjUdF2a82up58 2aoblu1MNgTrWHz4Eq5ailmI9P06XbQ= ARC-Authentication-Results: i=1; imf13.hostedemail.com; dkim=none; dmarc=none; spf=pass (imf13.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=1750392765; a=rsa-sha256; cv=none; b=4yR/hZyXmI7XVa0DlnL6wFJ73kGycBLCWPIy0k6FgZnI5U/EXOtyXI76I9acvvhb7MGMSd QFdFI5InsH1da90cPqRTUge8ApNXwoEpLtshhf1Ewl+FhWFOWU4t0grVaHAn8brtySxcRf uDvSfVvMP76UDH/2J+PBI2peY/vKNXk= X-AuditID: a67dfc5b-669ff7000002311f-a2-6854dfb37571 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 v6 8/9] netmem: introduce a netmem API, virt_to_head_netmem() Date: Fri, 20 Jun 2025 13:12:23 +0900 Message-Id: <20250620041224.46646-9-byungchul@sk.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20250620041224.46646-1-byungchul@sk.com> References: <20250620041224.46646-1-byungchul@sk.com> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Brightmail-Tracker: H4sIAAAAAAAAA02Sa0iTYRTHe/Y878Xl4HUNe7pANcrAyDQsThBh9OXNLkSLPhRdVr601Zw2 a2l0sbmoJC2yQOeKmaROrcW6uKV2mcushMwuruvEcvWhC2nZ1KA2Q+rbj3PO7///cnisLGMm 8nrjLslk1BrUrJzIP8dWzL4SXKNLfvhTBXZXPQt14Vyo7vYwYK+9juD74CsO+v33WKisGMBg f2Ql8MM1hKG3tYeDOvcKCFaFCDQdacDQc6KNhSLrMIbmwS8cWDw1Mui4XszA6aELGBryuzl4 csPOwtv63wyEfEUE7tucBILFadDqiIeBh58Q+F0NMhg4fpaFkk4HC++sQQSdLT0Eyg8VI3Dd DDAwHI5klN99y6VNF1s+fcXiVecLmei1veFEh3u3eKUmUSwMdGLRXXuMFd19pzjx9fMmVmwr HSai19MvE4sKvrDit96XRPx68xkruq4+I2K7w8+tilsnX5ghGfRmyTRn0Wa5rvp4iMm+G5N7 qf0Jzkf5fCGK4amQSn+4jrCjXPnxHY4yK8ykgcDgCKuEFNrfc48UIjmPhYss9de/4qKLccJa esvSKosyEWbQ3sY+phDxvEKYR5tbjH8zp9C6y7dHcmKE+fSbpXGkSxk5CZ+3MlFWCHH0ftl7 ElVxpNd1Thkd44hacK0cR2up0MRTS1WY/M2cQO/UBMhJJNj+023/dNt/ugPhWqTUG82ZWr0h NUmXZ9TnJm3NynSjyMNU7f+13oP6OjQ+JPBIHavwfNfolIzWnJOX6UOUx2qVorJtpU6pyNDm 7ZVMWZtMuw1Sjg9N4ol6vGLuwJ4MpbBNu0vaIUnZkml0K+NjJuajZR+2Wd2zEkIXD5njVaXZ q7oW/6RHx7Q50y+NZw7bq3UTHg87CioSg0ONmy1TOpfYun1pB1Te5ynujWematRSct7OroXv NzzVhB4c7T67Pf33Nc2iai2ZN3Zp/FRPyeRpweKM1XVZCwr8Cc3ksWr5mPQab6wh6aAzfUsy 3WetGBunJjk6bUoiNuVo/wCWeEfqLAMAAA== X-Brightmail-Tracker: H4sIAAAAAAAAA02Sa0hTYRjHefeec3Y2WpyW1cGCYBGBpKlZPJSFEdGhyKIyoz7ksFNbu1ib DjWCeaFoqN2EbC6ZreumTVa6WXbBqWlFhVKYlo7ZTLpYTRtOo9qMqG8/nuf3/z9fHhpLp4hY WqnN5XVauVpGiQlx+uqS+FuDOxWJjR8osDjrKHBM5MM1n4cEi70JwXi4XwhjbY8osNWGMFie lxLw3TmJIdDhF4LDtQUGrw4T0HLCjcF/qpOC8tIpDPfCo0Io9lwXgPdiFwkvmipIqJy8gsFt 9Amh546FgoG6XyQMt5YT0GW+QcBgRRp0WOdC6MknBG1OtwBCZRcpONdtpWCodBBBt9dPQHVR BQLn/V4SpiYiHdXtA8K0xZz30xfM3b7xWsA1m98KOasrj7t1PY4z9XZjzmU/SXGu4Fkh9+ZV C8V1Vk0RXLNnTMCVl4xS3LdAH8F9uf+S4mwjXwWc8/ZLYpt0jzh1P69WGnjdsrVZYsW1smHy cLso/+bTHmxERtqERDTLpLC2kSEcZYpZwvb2hqc5hklix/yPCBMS05ipp9i2un5hdDGb2cU+ KO4QRJlgFrOBu0HShGhawqxg73m1fzoXso6Gh9M9ImYl+634LhVlaUSZuFRKRlnCzGK7Lrwj olEcueuskUbHOBItaazGp5HE/J9l/meZ/7OsCNtRjFJr0MiV6hUJepWiQKvMT8jO0bhQ5CWu HvtxxoPGeza2IoZGshkSz/gOhZSUG/QFmlbE0lgWI7F1piukkv3ygkJel7NPl6fm9a1oPk3I 5kk2ZfJZUuagPJdX8fxhXvd3K6BFsUZ0eURqe5wTn3Fo0esNp/vrtb4UsWpelZ95WFizMrZ+ KGM7HV6q7UmOT69VrdmnaciVi86sf98Q9GWIUpP65uxNMR073hBa53AvOLp5d+bMzM/2j+z5 vJ++K0xLpScZJyY+syc/1TOaO4bRA8baYMKR5fXZgap0e9NWv2+Vvehku4zQK+RJcVinl/8G s8MlJA4DAAA= X-CFilter-Loop: Reflected X-Rspamd-Server: rspam11 X-Rspam-User: X-Rspamd-Queue-Id: 7C39720006 X-Stat-Signature: zceimn6nraqoncxwfxbhbbj8ujzhwb53 X-HE-Tag: 1750392765-736665 X-HE-Meta: U2FsdGVkX19U78nAsk9rxaWwT65gfcCz7n4i1XVohsx4UShlMBiiWs4dkKWjf2xBpXuPL44PuBXY88tQ/rZbWqtKiy+ZFQmg7s7USSeC6if2EDdtD/VAAooesgdNKUHcnkB7cimZ/1veE8EsdR/wyVIr6bH0KUAKEya4133+jWH9eHMSpaj9WFYwcG3kQjvduaAqN4lIFEmNxLOaRdnpchwkjub0W85LEaGOxD+HHkf4I0GxJe3GcC25c0wnY7s+L7phzevtKeUkN0h99tkumxA9R08ZPzUy+hCux1LcSP52Qr2k175XCty18t76K6eUPXl0JpT0FhlEv48PzFs5eAsMKr7C+3ZlnvH/zr3v2XspZ8eGuJyUJQKm6Xa8A7L5LSbcHZHKLuG3gZpSIDMYN8iF/YdY9mxRnVSYrHVejkCJ4VlHyXwSEm6cJ+kKHINJiay21JtvT6Gx2YkFuI2fE7Cj0uJjZdV60Mj/l2l23ait0Ju+sw9OqS++iaQ+Xtq0Yx3jze41nqqV/aUE0M5Jhc+B/Hv8ePTMmao0cHpnccUeuQdoI7I7/ZEBzPTQpZjHjFw1QdtaLlNFjlRndJnxlMrjn1KfKm0h71VOkQAQLovm9sYzYV/TOlC2A+YylPiAnxbIm0NpoZqJtTft+07X0Idx03skYggPpUQmw68YwDRj035mwaqzotIDnjYQOXPchgl2XZQ7KAhzJLxO6FWKKN+Cpv7jMKeMKFYyMLqfoXJb/SI0NdgEP+09NAzdW89Lw3BGiRvcyXRvyqB2eCQ7ab4jGp/MjuHqSSjPXJLx8LIteGpIwgbBGWv9mJW6Tm38wvIZEcE3mXk50M1y/9Er0Cs0WEtMZAIP/mzn0H62GRWSDyt0yWvUsZgiMKzi4SctdrYX6hjfSP41GNYF7Lcjz/roBtqtSqv3BNMay5u0l+T1hqOHikIw/5DDZq7ljbXR+wXT7uNAXOsPH556HIJ lkvGFkKZ RbHGFiPEexTHpE5HN4HWAi3okQDJB0Jpf/hW/OpF2BV/3kwKF+BVxEA+ziln9UfVsPadcb7EapSrGrE9WYUf/gI4959e7oCr12M3TwcE7N+QxJ6X10v6jco6nnbXM7RMIBCLagCYYVhketQReQE+wt7n5uPXgeFN2jLU800xWNuO0KXugMI0VbDYtGpo55RPripRA/94l1xHIlCjIZQW2sK8PguiAzbdXzy9kf9aqd87v0z8bFYtPWOjQSvmt+jJYlxRvjngSDz57r+w= 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 d0a84557983d..d49ed49d250b 100644 --- a/include/net/netmem.h +++ b/include/net/netmem.h @@ -276,6 +276,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