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 E0D60C83F18 for ; Thu, 10 Jul 2025 08:28:40 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 4872B6B00B2; Thu, 10 Jul 2025 04:28:28 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 460546B00B3; Thu, 10 Jul 2025 04:28:28 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 300646B00B5; Thu, 10 Jul 2025 04:28:28 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0012.hostedemail.com [216.40.44.12]) by kanga.kvack.org (Postfix) with ESMTP id 0EF716B00B2 for ; Thu, 10 Jul 2025 04:28:28 -0400 (EDT) Received: from smtpin18.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay10.hostedemail.com (Postfix) with ESMTP id C7832C04FA for ; Thu, 10 Jul 2025 08:28:27 +0000 (UTC) X-FDA: 83647678254.18.458EF48 Received: from invmail4.hynix.com (exvmail4.skhynix.com [166.125.252.92]) by imf26.hostedemail.com (Postfix) with ESMTP id EC7F0140003 for ; Thu, 10 Jul 2025 08:28:25 +0000 (UTC) Authentication-Results: imf26.hostedemail.com; spf=pass (imf26.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=1752136106; 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=pRgBM99qpNJSgAq5WBrie9STWuaX9EWtbGmy6RKZiUY=; b=PUCsrZjEy/H828tIj4Xu3Orx8Zfh/QNfQo3IgIA3tF8cuDPVJYmUA0E1sm7Bc/UY1BPwQJ 1YpF/krF6pFJE3hCQglJYMv3V/Hspaz5/4Du5ObKL8YyuZi3HMSI6n80nN35laFuNFZnco zZRptIHIs5Z169SiyMNWEhdtvRkJ1WQ= ARC-Authentication-Results: i=1; imf26.hostedemail.com; dkim=none; spf=pass (imf26.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=1752136106; a=rsa-sha256; cv=none; b=BVYsn22O8ms3b2UPTs02OWSn2LXv/mOSybluqoEuMVZFmOk7q1H7O36mcTY739mQNjHn/T 5KFLnKccDte8SjG08KORbgIalnJXWTlytytlQX2QZ5gapkx0grESMWjfnDcIMUCS2HZDKR zgpzBDn7gCT8pE/eRzXLFUs4DZ7sAac= X-AuditID: a67dfc5b-681ff7000002311f-19-686f79a2591f 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 v9 7/8] netdevsim: use netmem descriptor and APIs for page pool Date: Thu, 10 Jul 2025 17:28:06 +0900 Message-Id: <20250710082807.27402-8-byungchul@sk.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20250710082807.27402-1-byungchul@sk.com> References: <20250710082807.27402-1-byungchul@sk.com> X-Brightmail-Tracker: H4sIAAAAAAAAAzWRa0hTcRyG+++cnXNcjk5T6mSBMYrA0jJUfh8i7FMnyBIM0oJ05MGt5pTN 26xomqIOXVHSxQssS+ctJmvpvOYtL2loijaz1BxakGnepm5BOcNvD+/78nx5KUz0EfeiZIoE TqmQyMWEABf8ci/xLVHHSU8UZLlDkbGagKr1FDBMWfhQVFmLYGVjnITlzm4CXjy3Y1A0kIHD qtGBwUzXNAlVphCYLJvFoSmrDoPp+z0E5GU4MWjemCch3VLOg8FaHR/yHaUY1GmmSBhuKCJg ovovH2bb83DoLajAYVIXDF36PWDvm0PQaazjgT23mIBHQ3oCbBmTCIY6pnEoTNMhMLZY+eBc 33QUvpsggw+xHXMLGGuuGOOx9QVfSVZvSmRfl/uwWusQxpoqcwjWtPSQZL+MNhFsz1MnztZb lnls3r15gl2c+YyzCy0jBGs0j+Bsv76TDN19RXAqmpPLkjjl8dNRAukb+xovXuOR0vF4hNSg tl1aRFEMHcB0DR/Yxh/fb2mRG0XQRxirdQNzsSftzyxPd+NaJKAw+hXBdFaPk67Cgw5nGnLe Ei7G6cNMWuXoVi6kAxlj6XvcxQztzVTVtGIuvxsdxFhsW37R5sQ5ot1yMnQmxWRlPyH+7/cx beVW/AES6tGOSiSSKZJiJTJ5gJ9UrZCl+F2PizWhzaPL7vy5akFLg2HtiKaQ2F04GKOQiviS JJU6th0xFCb2FK6Hy6UiYbREncop4yKViXJO1Y72U7h4r/CkPTlaRMdIEribHBfPKbdbHuXm pUE1UTEF2QvnLwZ39RVnHg2aF6eGBfheS19bcIjz+r1tkfLkVXNgjtnwbOyy6u7ZvlxVsjqJ 1o8d8zj3MwWc30pubxjaQi41RgzwVwwlM4b0SB/bDVnL7wystxnG8nf2dDDGZbFV3njwzIdP hsUId/OsvLVR+rLlQmhEfKNDVyPGVVKJvw+mVEn+AYDTPCPkAgAA X-Brightmail-Tracker: H4sIAAAAAAAAAzWRb0gTcRzG++1ud+dodE3JS6FgIIWROUz5VlYSRGdg1IvSeqEeebnhnLKp qGG4FMKVf7KQ0AkT2dKprKbpNLPa/B+oaZql+WeiCYlmmrkZmBN69+F5Hj5vHgqTNOF+lEKV xqtVnFJKiHDRlTN5x6uyUuTBre5ToLfUE1C3mQnPZ2xC0JubEay7JkhY6+whoLpqAwP9YD4O vy1uDOa7nSTUWaNg2rSAQ/uDFgycxb0EFOZvYfDGtUzCfVuNAByVfUIYai4SwlO3EYOW3BkS Rtr0BEzVbwthwV6IQ195LQ7TRRHQbTgAGx+WEHRaWgSw8aiSgCfDBgLm8qcRDDucOFRoixBY OsaFsLW546jomiIjAljH0grGNtV+EbCt5d9I1mBNZxtrAlnd+DDGWs0FBGv9VUqyk2PtBNv7 bAtnW21rArYwb5lgV+e/4uxKxyjBVi/+FLCWplH8quSWKDyBVyoyePWJc/Ei+auNP4LUXO9M R9komYve79MhimLok8zi97s65EUR9BFmfNyFediHljFrzh5ch0QURjcQTGf9BOkpvOkYpq3g LeFhnA5gtOax3VxMhzIWYz/uYYY+zNS9eId5/F50GGOb2/VLdiZbozq8BIkMaI8Z+ShUGcmc QhkapEmSZ6kUmUG3U5KtaOdLU87fxza0PnLJjmgKSfeKhxJVcomQy9BkJdsRQ2FSH/FmjFIu ESdwWdm8OiVOna7kNXbkT+FSX/HlaD5eQidyaXwSz6fy6v+tgPLyy0UXCb87MRp3+sfGudWj 8caG4AFzRMV2jv20f4hU0l4eNfz65vZZfunTy+BDIaSsX2E0uUMHpJ9n1ytkUw+75TOcb6zv RGnk1AVh9AOdqkSnahYWF/SVyM5f+3HDFegKDpncvxC3nB3WGN7lmh0KHDQlaiPLKnuujxy8 V1Abqz0mxTVyThaIqTXcP7di57nHAgAA X-CFilter-Loop: Reflected X-Rspamd-Server: rspam08 X-Rspamd-Queue-Id: EC7F0140003 X-Stat-Signature: uexwy9qmgpgfoocznnhn5pq5qw6mko67 X-Rspam-User: X-HE-Tag: 1752136105-389635 X-HE-Meta: U2FsdGVkX1+E3o0J1ugHEyxHOnRIKzCaCf885ytRAbq1Px34+12j1oou50MT0HTX+SHyA40ceQqJ2OUmvmYN3CMTbkDuaYxJUiVYivGsGqM9dDiy0SVkZiyG1XrqP/jF1cvdfaiKtuvW2RgVxRvcfHG0aFDbMVWAKsQ9bzYLxjQhApOlvq2FyrAh8T/oRG7sqSBInN4LQLSFNxkvd3eGBILT3D/XthLXyB7BqVPUviBjiYgFJgEk5tQi50i35Y6Jr0xn50IUBSB35vOHc9b5LkPm9rTIBacaFfDBn/nJhn9ofFPo4UcWLU2tWRsDUvCmJX1TRIBQUew/FFPhzlL0/Pp6Y4d2tToMyw/uOuRi2KWYNyqJD3K/j7yR/IGkEHKsqValJZpr1lp3uGKdWD8SW70nMRWdX9iyPN5qbTNbZJGdsDy4m4njISOtl3EkpSECw+X3dqD4bIoSfzPaEFLrOovXocD5Wf1SKWSOs1zIRYb8ZxQKpz/UjRHnKyxMyaiqrW2amAvsCK3QjBXxRromOi4ZjA5E2iw0xbgh8cR1H4nQKvJl2yoDkbwZMKEN1ePf0cBq5+LxlASf0BcOoL51Ffo7baHTUfsvnrBEuxdMVx3S2UXjfbUuvNxNbkcfzC62T22o2Be2MxmOqCMFIdivbIf3RBcFxAe42SCnZooPiyb5jtAu8d9Vuw6Zqrh2nRkivfKRiHTDjdjG732KpJoniHztvXF2nQbJBfsO0QYO2Bg53BSyn7laaMGeeeUIWW+zJ+4v15d1CzT5d0Ecy4B6NoPIQrd//35C30EeZ7/jMRxanEQeYbEkcK2WcxgMoY6mk3DdEAABQ544dq2If9d6ckPK+LvMLEfIm0nmMOWS2b+DDvsDj7Rl6gBby/dtRycHx2MgGyXJmsuN1C7MD0xpAV7HmKH25odVmD9xxMge4XazQfOiCWZyiNfbQNu2Ur9wkSMBYfIdUjiy1vYm1W2 z5W4SMhE r/kPyxLnR0T0CGIiidBYz42+3jBRgpyugfY7OTksm+JRrHhk= 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 e36d3e846c2d..ba19870524c5 100644 --- a/drivers/net/netdevsim/netdev.c +++ b/drivers/net/netdevsim/netdev.c @@ -812,7 +812,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); @@ -832,18 +832,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: @@ -1068,9 +1069,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 809dd29fc5fe..129e005ef577 100644 --- a/drivers/net/netdevsim/netdevsim.h +++ b/drivers/net/netdevsim/netdevsim.h @@ -132,7 +132,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