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 0DF86C54ED1 for ; Wed, 28 May 2025 02:30:02 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id D972B6B009E; Tue, 27 May 2025 22:29:34 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id D20556B009D; Tue, 27 May 2025 22:29:34 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id B73E76B00A2; Tue, 27 May 2025 22:29:34 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0014.hostedemail.com [216.40.44.14]) by kanga.kvack.org (Postfix) with ESMTP id 8B8486B009D for ; Tue, 27 May 2025 22:29:34 -0400 (EDT) Received: from smtpin13.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay05.hostedemail.com (Postfix) with ESMTP id 3BB6384978 for ; Wed, 28 May 2025 02:29:34 +0000 (UTC) X-FDA: 83490735468.13.394CF8C Received: from invmail4.hynix.com (exvmail4.skhynix.com [166.125.252.92]) by imf09.hostedemail.com (Postfix) with ESMTP id 5BD8D140003 for ; Wed, 28 May 2025 02:29:32 +0000 (UTC) Authentication-Results: imf09.hostedemail.com; dkim=none; dmarc=none; spf=pass (imf09.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=1748399372; 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=oUEnCjD+mKeCxLTqHdbVLa3ZFOGev5s5jF1AE2vasWtzQU33ulrCnHj06fXy+Hri2ztj1S RiraUdeCBfvgK1KpyAwfF0lziCVAT7/N23fwpWMeHMoLm9ERUXquXlm2iyej8X6Hj6fF3J JSpPygixqxWgEcvIZHhYWEVXzolVdPc= ARC-Authentication-Results: i=1; imf09.hostedemail.com; dkim=none; dmarc=none; spf=pass (imf09.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=1748399372; a=rsa-sha256; cv=none; b=ptL4dzUrZ1jJ2/ZyyV4XcqvDZzMNaQyUa0l6fizg8AIFLIXIJYd+TfcochkmSdTxq45GSI CPlv4a4o0xH5qt6TBuWtpX3WE5Wfzeam2egeqo6yaygwh0Rl6MHtMn5mWhKTqqogh1YpHc BQg8tTpc8op0V8z9ybMFTq1DKOXR1rE= X-AuditID: a67dfc5b-669ff7000002311f-b3-68367502ace5 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 v2 15/16] netdevsim: use netmem descriptor and APIs for page pool Date: Wed, 28 May 2025 11:29:10 +0900 Message-Id: <20250528022911.73453-16-byungchul@sk.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20250528022911.73453-1-byungchul@sk.com> References: <20250528022911.73453-1-byungchul@sk.com> X-Brightmail-Tracker: H4sIAAAAAAAAAzWRa0hTcRiH+59zds5xOTpMqWNFl0E3KU1TeaMoP9U/uhMFGlQrD241p8xL ziiWCtK8RZZZLZyEd2E276Kma15SIzOrWZq20IpM09UyF5Qr/Pbw/F6eLy9LSq3UclapjhM0 arlKRosp8VfPgi1EfIhiq701AAymChrKZxOheLReBIayWgTff71lwGHtpOFBgZMEw7NUCn6Y 5kgY67AzMFI0TkFTWh0J9uwuGjJTXSQk15cQ0FebJYKbc4Uk1OlGGXjRaKDhXcUfEYxbMil4 creUgpGsUOgwLgVnzwQCq6mOAGfGfRpy+o00fEgdQdD/2E7BvatZCEwtNhG4Zg106FpcXTpI 4Ia7www2muNxVYkv1tv6SWwuu0Zj88wNBg+9aqJxV56Lwg31DgJnpkzSeHrsDYWnWl7S2FT9 ksK9RiuDHeZVR7hw8c4IQaVMEDT+u86IFb0DeiJG55Xo7P1J6lDbEj3yYHkuiB+tGaAX+JEl BbmZ5jbwNtsv0s3eXADvsHdSeiRmSW5SxI8ZXIR78OKO8jntnYybKW4df8c5+M9LuBA+v6iH +R9dzZdXts6HWNZj3rcPnXNrKRfMT6WbkLvJcz8YPvnbLfL/vQ/fVmKjriOJES0qQ1KlOiFK rlQF+Sm0amWi37noKDOa/23R5d8n69FM3zEL4lgk85TgymCFVCRPiNVGWRDPkjJvSfLuEIVU EiHXJgma6NOaeJUQa0ErWEq2TBLovBgh5SLlccIFQYgRNAsrwXos16GDSWXapz5xe3UfK19v 25Pb+ipsZXc0r+mfyXlQ+GVzzdnnpc2pjuNCYLr+1G1a/bkm17+q2fhpeHDHJs/DdWHlxZ/S 8j3b8qabg6sa91WcL+6OTD90M3HzxMTD7DWqS+HarN4DAev2BzuMVlP8fuPG7e8Ppa+flvrG XMkgkk64Fs9hGRWrkAf4kppY+V+ZsrI/1wIAAA== X-Brightmail-Tracker: H4sIAAAAAAAAAzWRa0hTYRyHe8/d5eq4rA72IVh0wcoyL/whKyGit6IwMIXIcumpDeeUTc11 gZWLcqV2I8omLsSVF5hO02mStaYuGiSaoWkpK8UuZKmtclG5om8Pzw+eLz+OlN2hwjiVJkfU ahRqOSOhJHs2FqwlcmOV6weHl4LZVstAzfd8uDPioMFc3YRg+scgC1OuLgYqbvtIMD8zUvDV NkPCaKeXhWHrGAVt55pJ8Ja4GSgy+kk447hLwOOyJzR0NxXTcG2mkoRmwwgLva1mBl7X/qZh zFlEwZPSKgqGi+Oh07IIfE8/InDZmgnwXSxj4GqPhYE3xmEEPY+9FNw6XYzA9qCfBv93MxMv x41VAwRuKX3FYos9FzfcDcem/h4S26sLGWyfvMLioRdtDHbf8FO4xTFF4KKCTwz+MvqSwhMP +hhcMf6ZwLbGPgp7LC42IWS/JC5dVKvyRO26zakSpee5icg2LMj3eb6RBvRovgkFcQIfLbQ7 C1CAGX6l0N//gwxwKB8pTHm7KBOScCT/iRZGzX4iMCzg9wpXO7rYAFP8cuGmb+Cvl/KxQrn1 KfsvulSoqXs4G+K4oFnfMZQW0DI+Rpi4YEOXkMSC5lSjUJUmL1OhUsdE6DKUeo0qPyItK9OO Zu+znvp52YGme7c7Ec8hebAU18UoZbQiT6fPdCKBI+Wh0jNbYpUyabpCf1zUZh3S5qpFnRMt 4Sj5YunOZDFVxh9V5IgZopgtav+vBBcUZkDsKXeIfNkvOkm6Cdd5Pqz3ujfVGysl9etwsGV8 crV+A+U4GxE194rYuSMq6eDEosRfDfe3phpa31a2u0+6to3IgkuS0xJW7V7yzlO4ZuG57vTD 8y6d4Ff0ZR+xetvjH17X7ztR3kRnNESfL08sO9YRdS8npe1Ayvj7t7tKEwwVbXFySqdURIaT Wp3iDxnZumS6AgAA X-CFilter-Loop: Reflected X-Rspam-User: X-Rspamd-Queue-Id: 5BD8D140003 X-Rspamd-Server: rspam09 X-Stat-Signature: xjy37865ekcri1yb6j4jkfcidgnyf3w9 X-HE-Tag: 1748399372-805800 X-HE-Meta: U2FsdGVkX1+Gdx/5LzxpIVv5Xi8Y60rh/tdP81pG4U9GkZVd6d0T4odhAiAhzjortL79kepZyT3rD2vNiuuErQf7/80U/sbTbl0jk7KF+aVWSJS4i5A6VrDLNeH4LZxPQWwYhuBTanIDRD/D5vl/Mj9iR1NiheMn2StncZatlLsehEjOWjiDVRimEXuUi98jfCPTVfmli/+tUDw/l/LrwTgfPWo1GLbMENDgcs4NDHPs4C6pA9qH/C32BlnpsT3URcx+bOQCFPnsECqxNSRWO/yrDmSHj4xu7wflcT/cTtVd/idBbb/75/hlb4QJMopSpNX3oZGDn3y12W0hRTBy0TJiiKg8Vg2FP8N00fXDwxtftGTVJhUe/EcSLVSxzKV+T5UMJsUvHzR/4keAGehoubRrWuuJfC299MZrzC8+svDynbxKoLXrpWgWIrErJg5irN/diix8DkzpAQlJeLOvXkB36jny5Uufz1wV7Ax2eGPBDXD0kqgtQrlCntsJ6Z8FAW8BsfAC4NoTJA3QoXVlEx72mvSDPy3UvAKebbFqU2uiSNm/Cd0F7Zq3ATgEeZS9ZpawIltgmWc5SF7ZFcrZvlrl1xtJdPbdzHJXd3rAXoVM6X9yHGDZzU3ft1DfwKeGeKhZ5w7W7e/0kO3RTmWTuTeEO8nbVnhSVWH5cmxdFBJ4nLFl2+N/R5XII06xvEAi3ClReG+vqj/A2/RYklAZHEgUU4VV59DNN/jVBGgpO2xpx0RpXQGCRQQBnsKjz3Ob/rXjNfzfXvU+a5RAo+5cJXbFkpHWGrz/SzIfV7QBWL/v7GBVbT1n9rlOUb5DoQoKDi7kqlx3yJdExeg55Cl8gnN71Hejl6lWZlsXZgUlN90OEBeb5ZD7uYZrTBXwoGGdDWqNKSFw469YZVnvjKgHCPeBqPE0f+eUEDJDDVGBvbOOb0C/SJwZAlA6zYWtLHqTCNKFb9xMHQ4899CtSaZ g64DWlRI NSdyfxCsIlX5dcC+Kwl9MGeHfGbw0L6dd8n0sArObSzXVgLaZAK+LQzi0fs0+6sqCR0AV 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