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 C2E57C5B552 for ; Mon, 9 Jun 2025 04:32:57 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id C40F66B009A; Mon, 9 Jun 2025 00:32:45 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id B7B9D6B009B; Mon, 9 Jun 2025 00:32:45 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id A6AD96B009C; Mon, 9 Jun 2025 00:32:45 -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 800D66B009B for ; Mon, 9 Jun 2025 00:32:45 -0400 (EDT) Received: from smtpin10.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay03.hostedemail.com (Postfix) with ESMTP id 0534DBDFD2 for ; Mon, 9 Jun 2025 04:32:45 +0000 (UTC) X-FDA: 83534591490.10.CCE8B91 Received: from invmail4.hynix.com (exvmail4.hynix.com [166.125.252.92]) by imf13.hostedemail.com (Postfix) with ESMTP id 07A9420007 for ; Mon, 9 Jun 2025 04:32:42 +0000 (UTC) Authentication-Results: imf13.hostedemail.com; dkim=none; spf=pass (imf13.hostedemail.com: domain of byungchul@sk.com designates 166.125.252.92 as permitted sender) smtp.mailfrom=byungchul@sk.com; dmarc=none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1749443563; 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=e0LxSnSE/3LpiYJenrgAGxWMlwRMk3/rgXMi8USLJs4=; b=aGxRLF+pPqVKsWy1BWBQAHQ7Zllv3AydJ4nUg2YdjEORlhOmOEeNiGuymYN0pQxrxASRSI IXw8tgtkDT4a97RMySM9JX844t+mmlCP9DAQpTzQ3xHnr1lEMGdJoywevi/nTZYbxNKKGM 9pj9eigerGr520sDN+FwUyos/wfQJjc= ARC-Authentication-Results: i=1; imf13.hostedemail.com; dkim=none; spf=pass (imf13.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=1749443563; a=rsa-sha256; cv=none; b=qB/LbAMnZRUPfige3nd5aOFBIL3qEeki/FF7tq1k1VsLsqbxlJY8LAChNCpyzLEhMh1G59 DBTi5++ebbCMSuXRSKFtn1F/jbuaIRysyh2C69RtCP0R9bflnR87RbosavltZcsXqgIJ13 pXH6zEPtJ29FUOhBTGNGVA+WuZiTjjA= X-AuditID: a67dfc5b-669ff7000002311f-99-684663e4ac9d 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: [PATCH net-next 8/9] netmem: introduce a netmem API, virt_to_head_netmem() Date: Mon, 9 Jun 2025 13:32:24 +0900 Message-Id: <20250609043225.77229-9-byungchul@sk.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20250609043225.77229-1-byungchul@sk.com> References: <20250609043225.77229-1-byungchul@sk.com> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Brightmail-Tracker: H4sIAAAAAAAAA02SbUhTcRTG+e9/793dcnabkrdXaSmVpmVYHCIiiPL2qcSQ0A+69NJWOm3z NShmrkJTy14o54qJWJtKi2VqYWLTMktomNlMS126KNLSlfhS2FZJfvtxnuc5z/lwaCwtJJfT SlUGr1bJU2SUmBCP+lSEDSftVWyuf+4PBkstBTVTOXB7sJEEQ3U9gu/TfUJwt7VTUFkxicHw UkfAD8sMhpGnTiEM3HIR0HSuAYPzwjMKinWzGE43mgRgry8h4cpMFYYG7aAQXj00UPC+do4E l62YgA69mYCBkl3w1LgUJl98QdBmaRDAZNENCi53GSn4oBtA0NXqJKA8rwSBpdlBwuyUgdq1 hqsz9wq4B/p3Qs5ozeTumUK4QkcX5qzVBRRnnbgk5Pp7miju2fVZgnvQ6BZwxfljFDc+8pbg vja/pjhL3WuC6zS2CTm3dfUBJk68I5lPUWbx6k07E8WKslEXmf5ElFPQ3Y61SEsXIhHNMpFs XYMZzXNp3y/KyxSzjnU4prGX/ZkI1u1sJwqRmMbMGMmOGGYFXsGPiWFL7Xf+MMEEsx2VD0kv S5itrNauJf4uDWRr7rZ4FtG0iNnGDjoyvGOpx2LrNuG/9iVsR9kw4bVgT6/lptQ7xp5k/v1y 7K1lGTPN1tQU/btzGfvY5CAuIka/IK7/H9cviBsRrkZSpSorVa5MiQxX5KqUOeFJaalW5PmQ Wyd/xjeiCXuMDTE0kvlIEq/tUUhJeZYmN9WGWBrL/CXMwG6FVJIszz3Bq9MS1JkpvMaGVtCE LECyZTI7WcockWfwx3g+nVfPqwJatFyLgqp889NXxX+KDcppKY8e98tr/ayN0eeyiRscJHU2 5Kw00C8iKiw4YM7RHX54/9oS1aPpHlHB1crjbQlnQh+5XL6pup7K3lNzzkDJIvPQy6TO2xUT o9n3jIcCzkeV7tu4/4Zk5Zuw0P71yR+LWqNdkhlFsP3b0YO+iwM6moY0cbHbZYRGIY8IwWqN /Dd6femOHQMAAA== X-Brightmail-Tracker: H4sIAAAAAAAAA02Sa0hTYRjHec/7nrPjaHFcUieLLoMQhC5CygNekCI9FV2goCvlcMe2vLap zS6wcpBZalpQrhULs0yllV3UMKlp6rRQvMTykmYqkdltJrqty1ZEffvxf37P//nysFg+QQJZ TUq6qE1RJikYKZFuDs9ePhIfo171oUACZmslAxXTerg5VEODufwhgsmZPgk4G5sZKLk2hcHc biTwzerCMNo0LIHBG2ME6k5VYxguaGEgz+jGcLKmjIKGK3YaOh7m03DBVYqh2jAkga5HZgZe V/6kYcyWR8BuukVgMD8amixzYartA4JGazUFU2evMHC+08LAW+Mggs6GYQKXT+QjsNY7aHBP m5lohXD/1itKqDUNSARLVYZwryxYyHV0YqGq/DQjVH0tkgj9L+sYoeWSmwi1NU5KyMv+yAhf RnuJ8Km+hxFK3n2mBOv9HiI8tzRKtvrvlkaoxCRNpqhdGRUnVRdPjNFpz/z0p7ubsQEZ2Fzk x/Lcar6w7zvjY4YL4h2OGezjAC6Edw43k1wkZTH3keZHzW7KN5jDbeMLO27/ZsIt4+0lj2gf y7hQ3tBhIH9KF/MVd554i1jWjwvjhxzpvljuVWzdZfiP7s/bi0eIT8Heu9arcl+MvZvZDy7j c0hm+s8y/bNM/1kWhMtRgCYlM1mpSQpdoUtUZ6Vo9CviU5OrkPcJbhz3FNagya5YG+JYpJgl i7u4Ti2nlZm6rGQb4lmsCJBxg2vVcplKmXVE1Kbu12YkiTobWsASxTzZhh1inJw7oEwXE0Ux TdT+nVKsX6ABFTkjgyKNDyom0/Onp9cv2lm+PTbb0xc7cGp2+8EYWXzE001hG5dwxT9aVQX7 rhuonPCj/BYxt5dZ8/XNBc/SniJNzrH3rgXr6mJcqk0L95T2B7Z9y0k4GdWqPDR+hlqsVi8s 0Sfqx5dI39/d5dnrbp4PnonDCTOq2snHL7rZKP9OBdGplSHBWKtT/gKDZs41AAMAAA== X-CFilter-Loop: Reflected X-Rspam-User: X-Stat-Signature: pbr8qd1hcth97u1ninqs4k8baw7xsere X-Rspamd-Queue-Id: 07A9420007 X-Rspamd-Server: rspam11 X-HE-Tag: 1749443562-587703 X-HE-Meta: U2FsdGVkX19qubb3Qblq6BTYdIsKtL1W97Gk7hs8L2B6UtlSxJuEuzPYDaDP5spTorGNbQowiylY0994gHT8ANixPYXe55F3hlf5dPmH+rFkHjtr2/jmGb6Vv9rEPN59pwswcAalLXFTWkaRcptlrSpN0373/YqZRIqg3DzQB8DPs+drQ/CplYTCoOyb6AvmOfhpXX6XHTwZOQdQbn8bNofvhHXbfeDTcuMNkIZdhXVLLMur7QHTYgMtnDxlgpNiaRdQVPb/UIslG2IJBrQlnbfvmKtMNBjqx1WgHDcurjDWk5UwJ9mZB80aAiPKawN9EifLIshg0iQRa7BLY6Cjisk6SJOJD13VYX8T5NH6wyQs3rYibQ37m910ya8tagGZFTUTzvutHTMNMnjKZaT8SubkV8+GEG/dIHvnWQxaAsSPQeC9gik7oh4a/eCVFfkvja7FV7IrgVUMe85oTBY2PKaKDLDC9pv+pzoMTbGf9eOhKcKySvRTCEQ+SUBCogRcyi+zvTl3JZjFjfZBv3i4dEIQUNYQ3Q6D9n8N235lJzCKj+eapqTIB3z2hD2T71LghDC2X2TIACiDyXlsFQJxvb1PJUSI3L6JBWw06kNFpbpWY545ExPt1kaAO5+qT+7i3Hg5gp4bRFLJ2je8lfFhgO5cJlFSlZE2p5NQOnJVoXEFNaM4mnaQRUT5hEL0cII58Wzkc0hI4pz80D2JZM4bLgxE4OfXEzLfbTt+HRuUUIuaC7au4Yrpr03mSMxT9GLBj1Lmx1OCI9S7SZaBgbq9by6C3aYDV3l6z0j6vp3hV/LktGncxtfr/6dwUzCFTF6Ktd1ZWW26COnv1PYvuVJmpTuj02GiQiSxYMM4nUX36RiIUE9EvDhnUVYUzXFZifhmpyMW3Nz8IWSMA5FQGbwoxxlT0M2kU4DIXCzXNalmPRMm2vFYTW8ySF8o+V+j6nc8dnO9ecxyMM2ysUZ6CNM E8Y4A5k8 ALEIAGwM1gn9AJuBahBVMQbg5Dr5hc+NmlRdjvLltxsqO3roxgwhChTxOUQapOffp84FLD+EKFu/2o3X8Log/iDyNbYmQA62AQY8asqs7ElJvjjywA51q75pbwTAIF0OjVwVKqk1jglrMEs5oZ+052YeBJQ57xCXvI5jwrAe8BxL/v8+/ouWOAHuUxwuV6fSytM89VgAcWpkdbxtRgX88jU/S+Q3hVIl01OvPrJIcxcOblYFZO7CJIH67tSl78UFYj8FkhSlX5lGwMcc= 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 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