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 59DF3C5B559 for ; Wed, 4 Jun 2025 02:53:42 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id C11D56B0564; Tue, 3 Jun 2025 22:53:10 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id B76596B0565; Tue, 3 Jun 2025 22:53:10 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 9C8536B0566; Tue, 3 Jun 2025 22:53:10 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0013.hostedemail.com [216.40.44.13]) by kanga.kvack.org (Postfix) with ESMTP id 54C3D6B0565 for ; Tue, 3 Jun 2025 22:53:10 -0400 (EDT) Received: from smtpin29.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay04.hostedemail.com (Postfix) with ESMTP id 1935B1A202E for ; Wed, 4 Jun 2025 02:53:10 +0000 (UTC) X-FDA: 83516196540.29.AF524B6 Received: from invmail4.hynix.com (exvmail4.hynix.com [166.125.252.92]) by imf10.hostedemail.com (Postfix) with ESMTP id 4121DC0003 for ; Wed, 4 Jun 2025 02:53:07 +0000 (UTC) Authentication-Results: imf10.hostedemail.com; dkim=none; dmarc=none; spf=pass (imf10.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=1749005588; 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=2tWZ6PjqyKcOt2w3Xvsbg5eV4ZkRZLP6VtHBwj4XikE=; b=0XXVehtqH3/AibmGBfXJv12DqSSG1cUz2HhwxtMal5r0Tf9qSP0OFHpHn8pK2SFDSrjqUy IGf9SenuFx1sRdNUylXrexU4uMgn5FdDA1ptWzZ4VtyzaPKWPqZiqa0wyDDxcS2PC+Krkm jlBaxwfsC5Q9y9Sh6cSwR757GZ++mWg= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1749005588; a=rsa-sha256; cv=none; b=4F8m10DxWxd6QnWhHgMsVCWB1w335TajX306YSunf/DFd8dJNNIwRpf6Ug5MYsjWs5DhvT BaoLIgJSIqu3MTggtNcRq3OKbGJsMdNQOJ2e20yR3/Jao+qK2/rgjc4wbrvPmDRWcXqqAt V2zUbWAj9K1+6g28TjopNynV7UGPxOc= ARC-Authentication-Results: i=1; imf10.hostedemail.com; dkim=none; dmarc=none; spf=pass (imf10.hostedemail.com: domain of byungchul@sk.com designates 166.125.252.92 as permitted sender) smtp.mailfrom=byungchul@sk.com X-AuditID: a67dfc5b-681ff7000002311f-51-683fb50a4c3d 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 15/18] netdevsim: use netmem descriptor and APIs for page pool Date: Wed, 4 Jun 2025 11:52:43 +0900 Message-Id: <20250604025246.61616-16-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: H4sIAAAAAAAAAzWRW0iTcRjG/e87bdPRxzT7MkqaSmXYQTRfoiwi4YsustNFGdTIr7bals1p WyDMstNoS0yxdNrsYJ5otkxnmeg8o5WZ2SpNMWY3ZelqmiblFO9+/J7nfW5ePiZuwYP4cpWG U6ukCgkpxIXf/YoihE+3yTbY80LBbK0goXxSCw+H7ASYy6oR/PrziQJ3cxsJ94o8GJhfZ+Dw 2zqFgat1mILB4hEc6q7UYDB8o50EY8Y0BhfsJTzorjYRkD31AIMa/RAFb5+ZSfhc8Y+AEYcR h468UhwGTduh1RIIns5vCJqtNTzwXC8g4WaPhYQvGYMIepqGcchPNyGw1jsJmJ40k9tXslWl H3hsbd4AxVpsKeyTknDW4OzBWFvZNZK1jWdRbH9fHcm235rG2Vq7m8caL46S7JjrI87+qH9H staqdzjbZWmmWLdtRTx9WLglkVPIUzn1+thjQllXr4GXpPfXeromMD1qXGRAAj5DRzHPs1/g C/yo4yrhZZJexTidfzAvB9AbGfdw22xHyMfoUYJxmad53sCf3sOkv5xAXsbpMKYpJ2vOi+hN zLUWFzY/GsyUVzbMsWDW94/mznXEdDRjtPdi3lGG/k0x+TkD1PzBUqaxxIlnIpEF+ZQhsVyV qpTKFVHrZDqVXLvu+BmlDc0+tzjtb4IdjXfvdyCajyR+Int/rExMSFOTdUoHYviYJEAUvGZW iRKluvOc+sxRdYqCS3agZXxcskQU6TmXKKZPSjXcaY5L4tQLKY8vCNIj7Zv40JpHMVrfzspV u1MaihwtOXGxVPerwqwZ8mK2pmvnlp/MvvDu8BmDPvf+geXr5asbcwnxqCBxKuKQUhS4tu/S EdPmEN/A0+axJ4sf38Zerz4V+dXwK5qKcezSpUUWKsJcmtjGqrq4N9ydTNHBhLr3PpqzO+7W Xt5bELK15MRWCZ4sk24Mx9TJ0v+osR7Q2AIAAA== X-Brightmail-Tracker: H4sIAAAAAAAAAzWRa0hTcRyG9985O5vL1XHOOpkgDZZkZElqPygvfdFThPlBCgzKkYc21Gmb 2jSCmUYpzlILSyfMJJtTmizTLURrXkdG5Q2z1WyyESF2UeetmzP69vC8L++Xl4cJDXgwT67I Y5QKaZaY4OP85CMl+/lP42UHG8aDQGdqI6B1RQ2PZiwc0Bk7ESyuvufCQv8QAU2NXgx0r0tx WDKtYeAedHHB2ezBoftGFwauW8MEaEvXMbhmMbChr8HOgTedlRy4s/YQgy7NDBfGnukI+Nj2 hwMemxYHe10LDs7KBBjUbwfvyzkE/aYuNngrGgioGdUTMFvqRDDa58KhvrgSgalnigPrKzoi QUx3tLxj09a6D1xab86nnxjC6fKpUYw2G8sI2vyjmks7JrsJevjeOk5bLQtsWlsyT9Df3dM4 /bVngqCbPn9j06aOCZwe0fdzUwLS+EczmCx5AaM8EJfOl42Ml7NzNYFq78gypkEvtpUjPx5F RlGP7Tc5PibIMGpqahXzsYiMpBZcQ3g54vMwcp5DuXXrbF8QSJ6iil8tIx/jpITqu1u96QVk DFU24Mb+jYZSre3PN9lvwzvmazc7QjKa0lrGsduIr0csIxLJFQXZUnlWdIQqU1aokKsjLuRk m9HGf81Xf1ZZ0OJYkg2RPCT2F1gccTIhR1qgKsy2IYqHiUWC0L0bSpAhLSxilDnnlflZjMqG dvFw8Q7BiTNMupC8KM1jMhkml1H+T9k8v2ANurQUP1k1W8MkOlnHVqt+nc0YCcD2iY4b268j f0k0GsrcmZprPX1lutlSUa1OPEwtzbB059K3hkWyeoPao+wP3hqkw7OiaU9sUbL9S4wkJM2V FLtlefZTCPd+/YA1pfZk6uU9NfUxPQ5P2YC4yMTgrl6npFFwqHb3nPp3Z7dOjKtk0shwTKmS /gVB9akEuwIAAA== X-CFilter-Loop: Reflected X-Rspamd-Server: rspam10 X-Rspamd-Queue-Id: 4121DC0003 X-Stat-Signature: tw1mxuezhx8n6twbbcrnjhmzqd4x6go4 X-Rspam-User: X-HE-Tag: 1749005587-525724 X-HE-Meta: U2FsdGVkX18hfKjz3YubpgDCklxAXDC2ZDLYYhdKvgiWaxsgGu9dc1UyV+dxnsvH7oURTFU5ndaU7b+77PZH7SUsrCkPiPVPxCjvoi3LtpuMthlHVZUjZpNh3jo+Kg9cWYpZjUw/rmL2QPWQ4b7vZFkP/vwXQWt9q3xcwcYSPuK3LtsSusxh6TxJQ+Y/w4X0eKzvKgPhsKPR6x95L2gLmja8o6MRKdHqinT+jdgFcrN83/PH2ajoo5f6XCzZSRwoiq7+3SX5O/sW/ettJrkDcIueMJ/daMqmOdf2rR7JuhEHuiIbV9bqncJ5FYv2m/9tKgr4E3fUV79owqcTimn/utfjdiMMZxAp3aqVAQWrSll7ndZPdwNoHFM9BLA6YKMVSCsvAWkMdJsrXKhHU7L0J+bNHTwi3DBPvyiGBOFUCdnl4u5V1P9ihcT/WoWBiSjkuxyQNPl/p+Ql1kQfHmYfUc5lfdAFzGFoUApCUeeJJzbIE5L0mjDXjioosaFQbP4I01TRAscfwsYme6jdHjkyWCtfzRjBOu6zKKY0wbgxW+Pc3PuprWA6ujtGcHwpgHKx/f7oU9vZ2O0v2kPbbxQkm5j8C2N6Qpt00sbqyq7Jq3HkFPN6RO5pKXk4a8Z5+OWBI+rT4HF6HSCDTINh/61hd4ChSl0Xuy664+Q2c+LObqygqVwo1Dg1k2qJS61sHw+6Nzh1Y9lueugfvxp4upQaTjvo9jET61spnSEPRUMaP0iqQL32jrtZsWV0oib7RR4Q/AvYRemkJQ0A2+9ccB6jlqwgcsw9BCYQAYNti05009ER2F1JGuLMkH33tnMh1RxnLUt8gGRO8QJLIbtezkUIQ371vlPX7I8AXiTMuszsBAOX0MUmawFcSn7Btc00aEx90I4xl5yCvqUgQoXK01sVBkXk4VRRYNF2H7phKv2dWxc1/xMupZ1HHbeIB334LOB5BIhJkYmZnkr14rig6JN gN569eC6 EsQUpcLhhTladPGRvMTwuvMHs6/1px+zcTT7vAgTeoK2oIu+JNpe0pxFmgoAxJdDS8KZo 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 simplify struct page, the effort to separate its own descriptor from struct page is required and the work for page pool is on going. Use netmem descriptor and APIs for page pool in netdevsim code. Signed-off-by: Byungchul Park --- drivers/net/netdevsim/netdev.c | 19 ++++++++++--------- drivers/net/netdevsim/netdevsim.h | 2 +- 2 files changed, 11 insertions(+), 10 deletions(-) diff --git a/drivers/net/netdevsim/netdev.c b/drivers/net/netdevsim/netdev.c index af545d42961c..d134a6195bfa 100644 --- a/drivers/net/netdevsim/netdev.c +++ b/drivers/net/netdevsim/netdev.c @@ -821,7 +821,7 @@ nsim_pp_hold_read(struct file *file, char __user *data, struct netdevsim *ns = file->private_data; char buf[3] = "n\n"; - if (ns->page) + if (ns->netmem) buf[0] = 'y'; return simple_read_from_buffer(data, count, ppos, buf, 2); @@ -841,18 +841,19 @@ nsim_pp_hold_write(struct file *file, const char __user *data, rtnl_lock(); ret = count; - if (val == !!ns->page) + if (val == !!ns->netmem) goto exit; if (!netif_running(ns->netdev) && val) { ret = -ENETDOWN; } else if (val) { - ns->page = page_pool_dev_alloc_pages(ns->rq[0]->page_pool); - if (!ns->page) + ns->netmem = page_pool_alloc_netmems(ns->rq[0]->page_pool, + GFP_ATOMIC | __GFP_NOWARN); + if (!ns->netmem) ret = -ENOMEM; } else { - page_pool_put_full_page(ns->page->pp, ns->page, false); - ns->page = NULL; + page_pool_put_full_netmem(netmem_get_pp(ns->netmem), ns->netmem, false); + ns->netmem = 0; } exit: @@ -1077,9 +1078,9 @@ void nsim_destroy(struct netdevsim *ns) nsim_exit_netdevsim(ns); /* Put this intentionally late to exercise the orphaning path */ - if (ns->page) { - page_pool_put_full_page(ns->page->pp, ns->page, false); - ns->page = NULL; + if (ns->netmem) { + page_pool_put_full_netmem(netmem_get_pp(ns->netmem), ns->netmem, false); + ns->netmem = 0; } free_netdev(dev); diff --git a/drivers/net/netdevsim/netdevsim.h b/drivers/net/netdevsim/netdevsim.h index d04401f0bdf7..1dc51468a50c 100644 --- a/drivers/net/netdevsim/netdevsim.h +++ b/drivers/net/netdevsim/netdevsim.h @@ -138,7 +138,7 @@ struct netdevsim { struct debugfs_u32_array dfs_ports[2]; } udp_ports; - struct page *page; + netmem_ref netmem; struct dentry *pp_dfs; struct dentry *qr_dfs; -- 2.17.1