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 C7EE4C83F18 for ; Thu, 10 Jul 2025 08:28:29 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id A7AEE6B00AD; Thu, 10 Jul 2025 04:28:25 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id A54576B00AE; Thu, 10 Jul 2025 04:28:25 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 919786B00AF; Thu, 10 Jul 2025 04:28:25 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0017.hostedemail.com [216.40.44.17]) by kanga.kvack.org (Postfix) with ESMTP id 7F7D26B00AD for ; Thu, 10 Jul 2025 04:28:25 -0400 (EDT) Received: from smtpin05.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay10.hostedemail.com (Postfix) with ESMTP id 45867C04E1 for ; Thu, 10 Jul 2025 08:28:25 +0000 (UTC) X-FDA: 83647678170.05.FA817EE Received: from invmail4.hynix.com (exvmail4.skhynix.com [166.125.252.92]) by imf24.hostedemail.com (Postfix) with ESMTP id 35AE1180003 for ; Thu, 10 Jul 2025 08:28:22 +0000 (UTC) Authentication-Results: imf24.hostedemail.com; spf=pass (imf24.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=1752136103; a=rsa-sha256; cv=none; b=talBwprEeJxHl57NlRPRbaR12RLQJxXWc3TRSDE02PXlLhGQnJPfIhoYfphIs/u09LRj/o bxrbkjwGpcJjZwXt93aaWHZ31HRUtAOavYQSPauCEXFZ+eqvWsthnB3HvqGrRkVvtWrqU0 LQ/KY/rMh4Q78g5/TiPsMUDLgW7XeXA= ARC-Authentication-Results: i=1; imf24.hostedemail.com; dkim=none; dmarc=none; spf=pass (imf24.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=1752136103; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=6CZrQgNUTjta9xFGBpL6np3tIARL+BZH5aqYKkYVFI0=; b=afsHLBmkPzFGV69ggJWEvk+pr6/VJiXJqebY1dw3vdKtCxWTEpQUrEbMdseEM+/M9ILW61 xzSWMIEqGdkMy8aU9kfhGkbJENjocRx0c5q18f18LKHsy5rqXPwTavllLCriUydliDVOba 3cT30YgVkJ1XgEb8dWnIVD418SzF4Mc= X-AuditID: a67dfc5b-681ff7000002311f-eb-686f79a12a98 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 3/8] page_pool: access ->pp_magic through struct netmem_desc in page_pool_page_is_pp() Date: Thu, 10 Jul 2025 17:28:02 +0900 Message-Id: <20250710082807.27402-4-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> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Brightmail-Tracker: H4sIAAAAAAAAA02Se2xLYRjGff2+nnPWrHFWw9kQScMkwhgj7x/CCPIJC4nMbYKyE210HWcX m0sMS8RsUyZC10kXzG6UGqu5hCqbIKZMamNXK2EbNmZbZdNuEf775Xmf53nfP14Oq87IQzmd IUmUDBq9mlEQRUdgwfSCtATtzIbbkWC2ljFQ2psKl5rscjCX3ETwo6+ehW5nFQPnC3owmF9k EPhp7cfQ9riFhVJbNDQWegjcOVKBoeV4NQPZGV4Md/s6WThkL5JBzc0cOZzqv4ihIr2JhVeV ZgYaygbl4HFkE3hiKibQmBMFjy1joOdpOwKntUIGPVn5DOS6LAy0ZjQicD1sIZB3MAeB9Z5b Dt5eX0feowY2ahJ92P4V0/LitzJ6y/SepRZbMr1eNJVmul2Y2kqOMtTWdZKl797cYWj1GS+h t+zdMpp9uJOh39vqCP16r5ah1vJaQp9ZnOyqoA2KeXGiXpciSjPmb1Fo65q37uwYnfrL/Aml oyuqTBTACXykMPjtJPnL7mtFQ8zwUwS3uw/7OZiPELpbqny6gsP8ZUZwltWz/sEoXhJa7Z0y PxN+spBfZRzSlfwc4epnGx4unSiUXr3vY44L4OcK9ta9flnls3hrM8mwPUh4cvYD8Vuwb6/1 3NBp2Jc8fCMP+9cKfDknnMi1yYcrQ4QHRW5iRLzpv7jpX9z0X9yCcAlS6Qwp8RqdPjJcm2bQ pYZvS4i3Id+/FO7/HWtHXTWrHYjnkDpQWbPdoFXJNSmJafEOJHBYHazsXafXqpRxmrQ9opSw WUrWi4kONI4j6rHKWT2741T8dk2SuEMUd4rS36mMCwhNR9ELBp6neGbnNUXk7ouVwg+MN4yI aV72hYyRlt6VUp+HBL3+6Kn7bgx9tjKhPLv/mLdemZXudBgXHIw3XphDpsmWbFocc2lt2Iqq l2smRJesrKZZpwdGKtrK3ro8671dW0ZXZgU3Vzb/CAyLWvF+4aJdscs/bTw2rb4yakRS/m7X 2eJMNUnUaiKmYilR8wd9KT3mKwMAAA== X-Brightmail-Tracker: H4sIAAAAAAAAA02Sa0hTcRjG+5//2dlxNTgty4NdrIEUQpqU8kIRQoUnofJTRR/KpQfPck7Z lroiWF6QJO1imM4tFMnUmdNluoVJTfNCHwrLWutiaYqEaZvXaVCbEvnt4Xl+7/O+H14ayxbJ UFqp1vEatUIlpySk5Pj+vN3V+gxhj3cqHEzWRgosCznw4KtdBKaGNgQzvo9imO7upaCmeg6D 6VU+CbPWRQyjPcNisNiOwVDtGAkdhe0Yhm/0UVCcv4ThqW9SDLn2OgK6zP0ieN1WIoI7i/cx tBu+iuHNExMFXxr/iGDMWUxCv7GehKGSOOip2gRzLycQdFvbCZi7bqagdKCKgpH8IQQDXcMk VF4tQWDtdIlgacHfUfniizgunOuamMJca/0HgnMYP4u5KttF7lFdBFfkGsCcreEaxdm8t8Xc p3cdFNdXvkRyDvs0wRXnTVKcZ9RNclOdgxRXM/6L4Kytg2Si7IzkQAqvUmbxmqiDSRLB/e18 5s+NOfOmcWRATbIiFESzzD7W1VJHBjTF7GRdLh8O6GAmmp0e7vX7EhozDym2u/GjOBBsYDTs iH2SCGiSCWfNvTeXfSkTwzb/sOGV0jDW0vzMr2k6iIll7SOXA7bMjywNFpEr+Hq2v+I7GUCw f6/13vI52D+Z97gS30RS4yrK+J8yrqKqEG5AwUp1VrpCqYqJ1KYJerUyJzI5I92G/B9Re+X3 LTuaeRPvRAyN5Oukr1PVgkykyNLq052IpbE8WLpwWiXIpCkK/SVek3FOc1HFa51oM03KQ6QJ p/gkGZOq0PFpPJ/Ja/6lBB0UakD2+bGSkwkt28ZVyZbCsyPZEFJblml+nx8VkplWsEPweLaH m2/kGtzuibvJxKzXTPQ4juhpSdyB+vLctJZBr3Bi6y+drcKTFzvjeFtmmy5a2yWEeJ5/kIZt id94eDF0jXXoQozZu0WTHaqLduzZVdDdVHio1KIz7v10K9F3NFZOagVFdATWaBV/Ac0HVvIN AwAA X-CFilter-Loop: Reflected X-Rspamd-Queue-Id: 35AE1180003 X-Stat-Signature: n3w96z3yafwixas48n3rcsmg3mwqsf44 X-Rspam-User: X-Rspamd-Server: rspam10 X-HE-Tag: 1752136102-991014 X-HE-Meta: U2FsdGVkX18yHay9cghBel/3ZWaZlNAQjhwJiakZELK2kk9PcAdAX7/RNa6VQHBM8LAJqmQhaaf5p7lwreyS/6ed+vKZNCOGP2xaJFGfahsWpKJ3rVOwGyUcBmCz9oGi4XSa6iIUW+Guye0D9iGA79nCcBQjL+hSuLKzuPBzKzupeib6ujARBIJXEAUQI9ei5fQd7w3bFRBcmcC6OI47XkwtcVBFV3Wx8K/EYKLuUqHAYyXVey7Z34WLI8szCoq79bPAKvS+TkMMZFEWCrdJCDU43j1foEJooWnd5ZPzDQ+9i/940QerAi27e4geNICJXEBsBsDMIGuMMaZAiqj5P0K1pedQI6g8MEk7HnaIm6xSwcLMebRaf4xTQRdkJnrgQWGTRhWOd2m2AUo1RNEckzQin6RwWZS2PJ9PmCfF5N2rRAX3x9Eln+I778Rb2Jf0m6tFqC4JhCR57m5SJAKcJddIXO6imkEm9/Tbf3+7kAN/zxuXiv0V6gwu6M6ZFE7tybwHTeN0vo26vWs9N+kuSybFNaQAmEk1S/IfDn03reGxCG8FSLasZJ3eR9lfwOUZY0Lh9OL0I8ZD5nPYfjZzrL2N2G0R2PVZ1jBoqLaBPr1/GB/Y2RWSWFKaauBafgmjs057B3juMcnxlAGzql17t9rJcG8WBR+5vLSmvxLE8iGTZnyqWonTeZ/XUpc2wkz9w+ELntrZa123G8L3AlJH2m1zE2mOGznD3DrSQ0BBBPZBm/0pFtYrWUtwz7eCmfkahfwfrv3XB2WLRAuFwvd9/ZXds6F5pPJykLd/qDs+QQP1MFWzYvAKMwxHH6ry/q9NCOEO7rl5eIKYkrKiPBKS0duRUnxejU7kjTTIXKdTsaN+wvmyublWmu9Rczt37QZDJPvPw6VBsJMBNA+iGjAyMdXUPJ21ReUeJvHYJQzQ3upId16/23TfB0+NCp9TNoA0lSSEvzltzBZEB/4gfLO 8awNXgz4 YJiGORzb8N47YMoAD5NXS9S/1aRGsQLK0Pp7DzGSMn+SMLFvet1oUArj0ZjvxO1CKO7Z41h0jZYrakuIk8VemL0wkwKYtTg4GJl9nLRJkuz/RI7gwA9vHMGY7dLHwlfE6/GdbajcPyojOkMSxPg3CxBRlzeKuoYn66opgWIddf7wDYH8F9AYeK6B8Y0vnVNtQl7wvANep2C+MsXvMM2hALimyh3dikcDWWR7/BsXL5+VhTOCSNGXOoYoMD7J2LigACERLY+sdh2jOZyNfFdzbv4DPyBgNomKAzj+motT+0ohqmVE= 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. To achieve that, all the code should avoid directly accessing page pool members of struct page. Access ->pp_magic through struct netmem_desc instead of directly accessing it through struct page in page_pool_page_is_pp(). Plus, move page_pool_page_is_pp() from mm.h to netmem.h to use struct netmem_desc without header dependency issue. Signed-off-by: Byungchul Park Reviewed-by: Toke Høiland-Jørgensen Reviewed-by: Mina Almasry Reviewed-by: Pavel Begunkov Reviewed-by: Vlastimil Babka Acked-by: Harry Yoo --- include/linux/mm.h | 12 ------------ include/net/netmem.h | 17 +++++++++++++++++ mm/page_alloc.c | 1 + 3 files changed, 18 insertions(+), 12 deletions(-) diff --git a/include/linux/mm.h b/include/linux/mm.h index 0ef2ba0c667a..0b7f7f998085 100644 --- a/include/linux/mm.h +++ b/include/linux/mm.h @@ -4172,16 +4172,4 @@ int arch_lock_shadow_stack_status(struct task_struct *t, unsigned long status); */ #define PP_MAGIC_MASK ~(PP_DMA_INDEX_MASK | 0x3UL) -#ifdef CONFIG_PAGE_POOL -static inline bool page_pool_page_is_pp(struct page *page) -{ - return (page->pp_magic & PP_MAGIC_MASK) == PP_SIGNATURE; -} -#else -static inline bool page_pool_page_is_pp(struct page *page) -{ - return false; -} -#endif - #endif /* _LINUX_MM_H */ diff --git a/include/net/netmem.h b/include/net/netmem.h index ad9444be229a..11e9de45efcb 100644 --- a/include/net/netmem.h +++ b/include/net/netmem.h @@ -355,6 +355,23 @@ static inline void *nmdesc_address(struct netmem_desc *nmdesc) return page_address(nmdesc_to_page(nmdesc)); } +#ifdef CONFIG_PAGE_POOL +/* XXX: This would better be moved to mm, once mm gets its way to + * identify the type of page for page pool. + */ +static inline bool page_pool_page_is_pp(struct page *page) +{ + struct netmem_desc *desc = page_to_nmdesc(page); + + return (desc->pp_magic & PP_MAGIC_MASK) == PP_SIGNATURE; +} +#else +static inline bool page_pool_page_is_pp(struct page *page) +{ + return false; +} +#endif + /** * __netmem_address - unsafely get pointer to the memory backing @netmem * @netmem: netmem reference to get the pointer for diff --git a/mm/page_alloc.c b/mm/page_alloc.c index 2ef3c07266b3..cc1d169853e8 100644 --- a/mm/page_alloc.c +++ b/mm/page_alloc.c @@ -55,6 +55,7 @@ #include #include #include +#include #include #include "internal.h" #include "shuffle.h" -- 2.17.1