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 8EA0FC5B543 for ; Thu, 29 May 2025 03:11:10 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id D21126B00AC; Wed, 28 May 2025 23:11:05 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id CF8EF6B00AE; Wed, 28 May 2025 23:11:05 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id C0F1C6B00AF; Wed, 28 May 2025 23:11:05 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0010.hostedemail.com [216.40.44.10]) by kanga.kvack.org (Postfix) with ESMTP id A1B966B00AC for ; Wed, 28 May 2025 23:11:05 -0400 (EDT) Received: from smtpin23.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay09.hostedemail.com (Postfix) with ESMTP id 5FAD78252C for ; Thu, 29 May 2025 03:11:05 +0000 (UTC) X-FDA: 83494468890.23.2ADCA52 Received: from invmail4.hynix.com (exvmail4.skhynix.com [166.125.252.92]) by imf24.hostedemail.com (Postfix) with ESMTP id 831A318000E for ; Thu, 29 May 2025 03:11:03 +0000 (UTC) Authentication-Results: imf24.hostedemail.com; dkim=none; spf=pass (imf24.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=1748488263; 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=420o4a2JqVeWJ6hHwnxUfAC1zvdwTFCI/AzLY/h4sCQ=; b=5M4Lgoa8+/5H//O2nOcHZtlpB32iXzaSSInvjscYQsGwedzYsqAghNBK58N6iW6lLRvRVX tEHuV17V9i+Kp9lpcJrvcBfARljGTXU5Vy9DDwsa8adR4f4OY8Rwkl+8gEVqzOt9Vn1b5C b7URMMIJ7kQyQnGVi+c2Mikf1HA2n7k= ARC-Authentication-Results: i=1; imf24.hostedemail.com; dkim=none; spf=pass (imf24.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=1748488263; a=rsa-sha256; cv=none; b=63gFDMw539vyVHbpZedzrr6BvzHwT7wjiEH4gt+oe54gd13622No5wR2bbWjNtTiaq5Cpj AGiP6PYvV8oyI8EjNAHVE283V96Clx4qd2xNiy1Fl3igQ5JI59KYjxjUb8aCJiEd4TV1Pi Qkksz2mZ5nN7/iw2S/ThgrrFyhFdAcI= X-AuditID: a67dfc5b-681ff7000002311f-f5-6837d0416fcd 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 v3 05/18] page_pool: use netmem alloc/put APIs in __page_pool_alloc_pages_slow() Date: Thu, 29 May 2025 12:10:34 +0900 Message-Id: <20250529031047.7587-6-byungchul@sk.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20250529031047.7587-1-byungchul@sk.com> References: <20250529031047.7587-1-byungchul@sk.com> X-Brightmail-Tracker: H4sIAAAAAAAAAzWRa0hTcRiH+++cnc3l4jTFTiZlg7CsNMXyjUSlD3XCPgQihIq69NhGOnVT 08ial9IktYuX0hUTybzBYoqbKZJz6SohcxnLSm2mhqTipeFcWbry2wPv83u+vFxMYMDduRJp OiOTipKEBA/nzTrXHj45GCg+Mr/MA6W6hYDmlSx4Oq5jg7KpHcGy7RMHlgz9BNTVWjFQvi3A 4ad6FYPJPgsHxuqncOgq1GJgKTMSUFJgxyBP18CCwfZSNpSvPsFAqxjngOm5koDRlj9smNKX 4PCquhGHsdJQ6FO5gfXNDwQGtZYF1tuPCLg/pCJgomAMwVCvBYea3FIE6m4zG+wrSiJ0L93W +JFFd1R/4dAqTQbd2uBNF5uHMFrTdIugNYv3OPTnD10EbXxgx+kO3RKLLsmfI+iFyRGcnu8e Jmh12zBOD6gMHHpJs/scGckLSmCSJJmMzDc4jifuHfFPXXPN+nq3i6VAuduLkROXIgOozrpK 9ibPVNlYG0yQXpTZbMM22JX0o5Ys/Xgx4nExco5NTSrtDsmFjKHeTdxwME7uo4wVMw7mb0S/ 2/9H91DNz144Qk7kUaqytdLhCNadh8U9xEaUIhc4VGFfM/o32En1NJjxO4ivQluakEAizUwW SZICfMTZUkmWT3xKsgat/7Y+51eUDi0OhusRyUVCZ74RBYoFbFGmPDtZjyguJnTl54UcEwv4 CaLsK4wsJVaWkcTI9WgXFxfu4PtbLycIyIuidOYSw6Qyss0ri+vkrkBpRS/JovqzYSuntuaF tnhUTXd01pW7nNDFTEcLPdo6pxuu9s3eHI2MFnn/Pm9ZMW3rL5sxvg5yO66wRXiZ/IJCVvfH Y8qDrG8T7xMf5+cMaE1h+cLF8ti4poooaYT4unt4gdeM55mYgDXfQyPi09IDrtcuBNekqNLS yzMT3eQhnkJcLhb5eWMyuegvVL19ntcCAAA= X-Brightmail-Tracker: H4sIAAAAAAAAAzWRa0hTcRyG+++cnc3h4Li0ThYJAzFGWUbmT4y0PuihG33ohlA59OTmZcqm NsNs6iIcapnNyiZMxLuwUNNppjWHzhRa3jBL5wVFTK3cEnVl6aJvD7wPz5eXiwmqcG+uVJbC yGXiBCHBw3kXQnIOnbIGSY783gwGnaGegLo1JVRNGtmgq21G4Fj/zAG7uYeA8rJVDHQf1Dj8 NGxgMNs9zQFb5RwO7Q9aMJh+aCEgX+3EINtYzYKu0l42WJsL2PBkowKDFtUkBwbbdARM1P9h w5wpH4fekhocbAVh0K3fBat9iwjMhhYWrOaVElA0oCdgRm1DMNA1jcOLrAIEho5RNjjXdESY kG6q+cSiW0vGObS+IZVurBbRmtEBjG6ozSXohpXHHPrLSDtBW545cbrVaGfR+TnLBP1jdgyn v3UME3T5/HcWbWgaxul+vZlz0SOSdyKGSZCmMfLDJ6N4kq6xo8mbnsqpwnaWCmV5aJAblyKP UQtP11nbTJB+1OjoOrbNnmQAZZ/uwTWIx8XIZTY1q3O6pJ3kDerjzH0X46QvZdEuuJi/FXo9 72T/i/pQdS/fukJuZCBV3FjscgRbznPNO+IR4unRjlrkKZWlJYqlCYH+inhJukyq9I9OSmxA W/dV3v1VaESOwQgTIrlI6M63oCCJgC1OU6QnmhDFxYSe/OzQ4xIBP0acfoeRJ92UpyYwChPa y8WFu/lnrjJRAjJWnMLEM0wyI/+/srhu3io07HU2bj3DeEU5sSgUag9oQ7UONRl5UJVZ/L5q pZOy7HO8GmuOqwixNqLlNtGgbejauRhCmhh9e+i6X//l6tCykdOxU74mmdJrtrOkveh881K4 l2P/m2BTWfEYliKKyLDOfy1KsUbe8vDpM95by5VN7bFnhmvC3PvH88aXLpmFuEIiDhBhcoX4 L5NhrTe6AgAA X-CFilter-Loop: Reflected X-Rspamd-Server: rspam03 X-Rspamd-Queue-Id: 831A318000E X-Stat-Signature: or9b8i3n4nnhh75e8wsdq68g3u556mj1 X-Rspam-User: X-HE-Tag: 1748488263-326369 X-HE-Meta: U2FsdGVkX18vy3U6KWx3mh7UKU/dDIPuLEgRks4zE3yZ0PPI1s8JcAKF67xBfIIQ977p/fCTx6Q4X4voxAsIKaviSEvLLBLJTXUYts8+nVDFeNrMX6kCl4mCa7Fi8WT9i1PYZYKtEEF/HW/PAaxqOTzGS4Xug3mnTBh1oV0QkAq1KadIuGAu5T6mQiQjdQe+VydgPqTKVOcLl/4cX/xBiKQzHenDDRXEJNFVs9Hf8NT+5m32Wceoi4adyj9KQZe6IW8IYZ5Qd/A+rqTC4OWlsJikXNzErni1Gdii/6YopSMAo2Su8aWMrnLo6Z2cbafPgvppoOoGNo19pDCOcchFL8yYTKs2pIIdFRF7KE4o/xd1WR7xPORrJjOnm9z5ftasNpzSHKRkAKLbZh3FKMnunlGzF98BH5cXg4NMkFs4e0yVVxFuXk74dSQf8MEt37Ho9U1rC/9qaOjkhDCmD7xxWcHf5maeqZlkQDEiznDruF5tkDZuuJrZAi+4eIlEmdmuCZOmU99f+w63L+OMz/NFWgyL+h7mpoWYpKUy6nueUMTMwVP7ZvezTUPpJhilmIj23qghRAnUPztfbKbAomNUjMSXKBw43aozaZDIvd1kQEE8EWmmjvwgwq1Oq1y4KNH/FJhGwyMi6iWAm2Lx8ThfkJ0jXTJa7L+1HM1vGXuLWBbdq9j/UWEd9UcudJ4f6gUDveeS6EqbxPxCQ0bNiOdsFNED5na8trfKjAgyvGyN7atKHuuTq7Jhbac0Aaft8Wjhsr0/Lqt0kn7mCq+ZpwSGhAczVjstgCDeFWT7YyKIIZiktEbUdpZz2jp8nOMmYaedFoEY5hTkIG+TVY5VNAggIpfp+xl7jnE+8mP2/IpBMNFaxMfUiaY7fjUqaG0KBeErF/hpOhc/Z3nTGqyx+bXtORpGKOwMfHAceXJO0pNxFjabKyN7fjfGZJVA7Bic6UMphQD6kjHDUt3d2EvUs9f W1rVuAwK /kNShbg+OuTIYfK36U8BpdYjDgZfdJpawHhnTSsoi4b3agK92pA77NzouXsohQTocjthjW1PQMGEmL6bpsXX+4eTaMJZRvbg5RpAwSRmxiHtDboPFM7IYPKHvzrOT/9d7Z+ercv7BG+qzauc= 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 Reviewed-by: Mina Almasry --- 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 a44acdb16a9a..0e7a336aafdf 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