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 46217C54F30 for ; Wed, 28 May 2025 02:29:32 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 2C2616B0083; Tue, 27 May 2025 22:29:28 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 1FDC16B008C; Tue, 27 May 2025 22:29:28 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 077AF6B008A; Tue, 27 May 2025 22:29:27 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0011.hostedemail.com [216.40.44.11]) by kanga.kvack.org (Postfix) with ESMTP id DA0B96B0083 for ; Tue, 27 May 2025 22:29:27 -0400 (EDT) Received: from smtpin06.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay07.hostedemail.com (Postfix) with ESMTP id 94349161D35 for ; Wed, 28 May 2025 02:29:27 +0000 (UTC) X-FDA: 83490735174.06.6F5A816 Received: from invmail4.hynix.com (exvmail4.skhynix.com [166.125.252.92]) by imf09.hostedemail.com (Postfix) with ESMTP id B5024140003 for ; Wed, 28 May 2025 02:29:25 +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=1748399366; 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=oBvkHT00VxUDYoLiksnL1j/cpE2IEACu+wuLGjbLw+E=; b=uHZZ/bBxarQ8KhDsCYXShnIhY0wiwwtrth0VAObhY6Hcol5bw4dQLk7aUHRiOIcdQgYmOV /J7/zbuCwx2vjy61lbhK87/vvAeNZfEaSEBhAcn3K2CZuyF3ya8cWpCLiuVHodkQvGky3i iOwKccci05y/2nbR+L0SePhOfT9rVoQ= 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=1748399366; a=rsa-sha256; cv=none; b=ku158WpxxJUj8cfXKOzvOgy/6mel15QEzsFXXYzwR6/yyRDqM6X097WOLUBNPvg+8IHy7g WlvszJ9tP+Nm6NUxY/lhotfqt05F58nE4QoMlCgiu1nUI+eaulh8HhCr+5zpoo0b7kSorz Cq1wbUk0B+CRe20Jd7lFZGswpYAfJrs= X-AuditID: a67dfc5b-669ff7000002311f-4b-683675013d47 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 05/16] page_pool: use netmem alloc/put APIs in __page_pool_alloc_pages_slow() Date: Wed, 28 May 2025 11:29:00 +0900 Message-Id: <20250528022911.73453-6-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+++cnR2Hg9MSOxokrYtgpXlbLxUp4Yc/QVD4oagPbenBjea0 zWsSqQnRzAuWZbpqGuYVJsvLlBG1Vl4xmxgrr2kTDNN0auoMc0nfHn7vw/PlpQmxlfSnleoU TqOWqySUkBT+9K48ilKlimPv606A3thIQcNqBtRMmPmgr29FsLQ2LACXrZOCF5UrBOg/5pGw bFwnwPlhUgDjL6dJsNxtI2CyqIuCgjw3AbnmWh4MtBby4eF6NQFt2RMCGOzQUzDWuMmHaWsB Cd3ldSSMF0bDB4MvrPTOIrAZ23iwcv8pBQ/sBgqm8sYR2N9NklCRU4jA+NrBB/eqnoreh5vr vvBwe/moABtMqfhVbRDWOewENtXfo7BpsUSARz5bKNxV5iZxu9nFwwV35ii84PxK4vnXQxQ2 Ng+RuM9gE2CXae955rLwVDynUqZxmpDTMqGifliHknt8MsqWA7ORndEhL5plItgG9w/0n5vH fvE8TDGBrMOxRnjYhwllXZOdpA4JaYKZ47NOvfuftIuRscVLawIPk8xBtvpTz1aIpkVMJDtr 37ndDGAbmt4QntmLkbLvR+I8s3jLmM83Ik+SZZYF7Ea1hdz2/di3tQ6yGIkMaEc9EivVaYly pSoiWJGpVmYExyUlmtDWZ1/e2rhiRosDsVbE0EjiLcJNkQoxX56mzUy0IpYmJD6i3CipQiyK l2fe5DRJVzWpKk5rRXtoUrJbFLaSHi9mEuQp3HWOS+Y0/6882ss/G1U9m5E6u2MGn/sf8FvX dmQp2h+H31Bf6hh90aS0FDVdqphOPxk+tbmw0dJXMh/j+6xf96bjcH9ppD3km7Tl0JOC0bGa 35R1MSElasAiS1uwzWYdmRnIuSAqdeWbM85e+348dS3gjDG/nNfbGFnkFftIeE5/O+zivOzP /kR/qkoWLCG1CnloEKHRyv8CrALHmdUCAAA= X-Brightmail-Tracker: H4sIAAAAAAAAAzWRa0hTcRyG+++cnZ0NV8c165hFtExJ0hKc/qKLQmR/QkoIDCLQpYc2nBc2 NRUkU6NazuxCiM5Y2MxbzMx0hlnMu91s4qXUKQstwlt5QV1hrujbw/s+vF9empCYyG20KjGF 0yQq1DJKRIpOHcr1R6nBygPLvfvAYK6hoHo5HR6PW/hgqGpAsLAyLID5tk4Kyh4uEWD4kEfC onmVgIkOhwDGyidJaL7WSIDjVhcF+jwnATmWCh60lnbzobehgA/3Vk0ENGaPC6DvhYECe80a HyatehK6iytJGCsIgw7jFlh6M4WgzdzIg6X8Ugru2owUfMkbQ2BrdZBQcqUAgblliA/OZQMV JsP1lZ94uKl4VICNdan4WYUf1g3ZCFxXdYPCdT/vCPDIQDOFu4qcJG6yzPOwPneGwj8mPpN4 tqWfwmXf5njYXN9P4rfGNkGk+znR4ThOrUrjNPuPxoiUVcM6lNwjTS9a9M1GNkaHhDTLBLH1 9jmeiynGlx0aWiFcLGUC2XlHJ6lDIppgZvjshMH5V9rMxLCFCysCF5PMHtb0sQfpEE2LGTk7 ZXP/t7mTra59TbhiIRPMto/EumLJujF704wKkciINlQhqSoxLUGhUssDtPHKjERVekBsUkId Wj+vPOvXbQta6DthRQyNZG5iXCtXSviKNG1GghWxNCGTinNCg5UScZwiI5PTJEVrUtWc1oq8 aFK2VXzyLBcjYS4qUrh4jkvmNP9bHi3clo08vXbZv2Y5NpbMho8SZ6KF/ivbW9uvvhozRZyO 3TsY/t7h01O6Zn4e4njiZnp0RF853VkiD9oU2jJwuck64D0niqIHsz2iVuO7FtGDg/dtPubd L586w4qqKzuj3nleF1zI7D0/H7JDHyGdDrrk54ePB3l0TXp/z833Xf1trz+2ECkjtUpFoB+h 0Sr+ALs1jfC4AgAA X-CFilter-Loop: Reflected X-Rspam-User: X-Rspamd-Queue-Id: B5024140003 X-Rspamd-Server: rspam09 X-Stat-Signature: 5515n678z3g3gcu96oamu74hdke5qqqt X-HE-Tag: 1748399365-614312 X-HE-Meta: U2FsdGVkX18luDYgluFW5ow64/ccHJaBH5N8x92dSYCaJvS3uj+sSKYn+vJcRcJGeqDF0w4QPY5V8h1cHBPNSM0fsDia/NpdC7Uulyb6zYYdhASHD0OsqzXNb0siAiXYnNeT5hdpV4u8z9n9zntxnwPqExBfzuf+J2cROgNkHGuAg/yufDPhF00PM77Dosczwx7sV8TMTNMKKrV5qS5GCi+DDuxSZy0bO7zjf0PPb+AEi9XgtB6GJ2pLv6h3iBgwEegs1SHFwOZQD6J87NDdSS1U6+fpL0q1kAdMUJmHjoGmY2+sqEuRMq4ecqvqtaJXtIzpHB92p56uE3RR2d2wVOiI4oOUy4TM1nMzT5A82gehzMYmWr528+UFSi0MGHLkjNuN6bBm7s+EMWF1RvwKyTaUn//t1UmyxmfOeizIJ25onSUnaDMmLTElaLKkZDB/FQ0bWkVyv4Atz+KPjXi/dtzkGhKBWEMK1Tua6CCLhhM9hfjo2uqSp2R9AFG+hbVoaXDsYxk4fZo6HItmDVsExm/sK+mYqUpuVDQlK2j7dOZbOb17QebMfiH9bYuM6NkFNyLgqphiRPF1T+YUooiSAEykHRi2bgGhEpcJStJOnrVZm9or3kNmzqsTmuUBxPPUVrYQLSo2KvnbitjWzbqRDII3KyC3IYSsR1Qv7JYgfkQ6C3frXw6AD8USIco/WUiVWdEGYPR7Pm+mjSWDicWjQGBUlLST6vWqZDiqdMfJEcrrTicjZOYkBD0zJZo7GoXjQvTKx1qXgfCC1QzCNOsWaC5YOmBL8GoyMFXH70IOCjMhiGwn1od+zorxxL1rW/LmNXsbSOxY6xC0F6m6Zh9Oo2WuYOs6Kpo2Mlu0NYILYRVqu9bqDkCANo+VCOdGCVd/GLZYw3i1o5q/zOmrn/CzFUnTUABgyiXvDCkFn4we077BCCibwYeHYwXita/c4iKwG7/EM7fLqOTATvtE3l0 wBt//o5e qDbpc1AgpKWEsp3v4CT9W5ZgnBKoLJm8XOtVaZjbrZri6Iu+EVJULAcKePXC7a63h5yHh9iRHZW3gMMmSGsBbh+s0ID0Hscn+wYNzaIWLqA/j4i4aCsPAZTqHWA== 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: Use netmem alloc/put APIs instead of page alloc/put APIs in __page_pool_alloc_pages_slow(). While at it, improved some comments. Signed-off-by: Byungchul Park --- net/core/page_pool.c | 24 +++++++++++++----------- 1 file changed, 13 insertions(+), 11 deletions(-) diff --git a/net/core/page_pool.c b/net/core/page_pool.c index 147cefe7a031..0313609abc53 100644 --- a/net/core/page_pool.c +++ b/net/core/page_pool.c @@ -551,7 +551,7 @@ static noinline netmem_ref __page_pool_alloc_pages_slow(struct page_pool *pool, unsigned int pp_order = pool->p.order; bool dma_map = pool->dma_map; netmem_ref netmem; - int i, nr_pages; + int i, nr_netmems; /* Don't support bulk alloc for high-order pages */ if (unlikely(pp_order)) @@ -561,21 +561,21 @@ static noinline netmem_ref __page_pool_alloc_pages_slow(struct page_pool *pool, if (unlikely(pool->alloc.count > 0)) return pool->alloc.cache[--pool->alloc.count]; - /* Mark empty alloc.cache slots "empty" for alloc_pages_bulk */ + /* Mark empty alloc.cache slots "empty" for alloc_netmems_bulk_node() */ memset(&pool->alloc.cache, 0, sizeof(void *) * bulk); - nr_pages = alloc_pages_bulk_node(gfp, pool->p.nid, bulk, - (struct page **)pool->alloc.cache); - if (unlikely(!nr_pages)) + nr_netmems = alloc_netmems_bulk_node(gfp, pool->p.nid, bulk, + pool->alloc.cache); + if (unlikely(!nr_netmems)) return 0; - /* Pages have been filled into alloc.cache array, but count is zero and - * page element have not been (possibly) DMA mapped. + /* Netmems have been filled into alloc.cache array, but count is + * zero and elements have not been (possibly) DMA mapped. */ - for (i = 0; i < nr_pages; i++) { + for (i = 0; i < nr_netmems; i++) { netmem = pool->alloc.cache[i]; if (dma_map && unlikely(!page_pool_dma_map(pool, netmem, gfp))) { - put_page(netmem_to_page(netmem)); + put_netmem(netmem); continue; } @@ -587,7 +587,7 @@ static noinline netmem_ref __page_pool_alloc_pages_slow(struct page_pool *pool, pool->pages_state_hold_cnt); } - /* Return last page */ + /* Return the last netmem */ if (likely(pool->alloc.count > 0)) { netmem = pool->alloc.cache[--pool->alloc.count]; alloc_stat_inc(pool, slow); @@ -595,7 +595,9 @@ static noinline netmem_ref __page_pool_alloc_pages_slow(struct page_pool *pool, netmem = 0; } - /* When page just alloc'ed is should/must have refcnt 1. */ + /* When a netmem has been just allocated, it should/must have + * refcnt 1. + */ return netmem; } -- 2.17.1