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 A9F99C7115B for ; Fri, 20 Jun 2025 04:12:56 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 287106B0096; Fri, 20 Jun 2025 00:12:48 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 238536B0099; Fri, 20 Jun 2025 00:12:48 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id F0A7F6B0096; Fri, 20 Jun 2025 00:12:47 -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 CD82F6B0099 for ; Fri, 20 Jun 2025 00:12:47 -0400 (EDT) Received: from smtpin04.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay02.hostedemail.com (Postfix) with ESMTP id A481812175C for ; Fri, 20 Jun 2025 04:12:47 +0000 (UTC) X-FDA: 83574457974.04.25375C6 Received: from invmail4.hynix.com (exvmail4.hynix.com [166.125.252.92]) by imf20.hostedemail.com (Postfix) with ESMTP id A54C31C0008 for ; Fri, 20 Jun 2025 04:12:45 +0000 (UTC) Authentication-Results: imf20.hostedemail.com; dkim=none; dmarc=none; spf=pass (imf20.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=1750392766; 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=t6ne9ntCB5RdjToc/iP8ra2rIUYOpFx739JdpYeUSgA=; b=cP/F2tg3HxPcDW8O8sxPlT5WKrRUHFP05jQJ+3z7xr8LtLGItAo0drf64TaFpmD2hRem2A FEEcHoT3mTwqi1J8a1fr4cUjrqHIuH1613DLIwSm6TxdVeKKUHjNbqcyhWz2zRkdREpoxs czgOFrLMI1aB5+FuJ+1/E+znUWsyaZk= ARC-Authentication-Results: i=1; imf20.hostedemail.com; dkim=none; dmarc=none; spf=pass (imf20.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=1750392766; a=rsa-sha256; cv=none; b=vM2Dri4D66Z9T5tUGnrVd/aOhE/E1IYf669Fsb8U5nKRHc3N1O1e8NYrme6POTqX8dHODa A1RAxaHBTqbAdUUOpvzyTWUqQS6vC9kD1Wk0jzT/00cedobmmHrNIsjXfFxWvNOfMn9dPz SrtDALKyPEVLatyARKjetl7z4DHvQ68= X-AuditID: a67dfc5b-669ff7000002311f-ad-6854dfb3dbab 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 v6 9/9] page_pool: access ->pp_magic through struct netmem_desc in page_pool_page_is_pp() Date: Fri, 20 Jun 2025 13:12:24 +0900 Message-Id: <20250620041224.46646-10-byungchul@sk.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20250620041224.46646-1-byungchul@sk.com> References: <20250620041224.46646-1-byungchul@sk.com> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Brightmail-Tracker: H4sIAAAAAAAAA02SWUwTURiFvb3TmaFaHSrRER+IdYsSUYzLnwiG6Mto1GgwavQBG5nQhlKw ZdUYyxKNFVBxQdtiisgiYGrq0qJASq3IopFA1CqrRfRBxEARy2K0hRh5+3LuOd99+WksKRQG 0wpVMq9WyZRSUkSIvs8rXvew96B8Q7dpKRjN1SRUedOhvM8mBGPlEwSj450UeJwvSSgpHsNg fJNDwE/zBIaBRjcFVZa90Fv2hYDa81YM7ktNJOTlTGKoGx+iIMtWIYC2J/lCuDZRisGq7aOg 46mRhJ7qP0L44sgjoFl/j4De/ChoNC2CsdZBBE6zVQBjuUUkXG03kdCf04ug/bmbAENmPgJz vUsIk16fw/Cih4pawT0f/IG5R/c+CLgafTfFmSwp3MOKtZzO1Y45S+UFkrOMFFBc17takmu6 OUlwNTaPgMvLHiK54YGPBPej/i3JmR+9JbhXJie1P/CoKCKWVypSefX67cdF8rpugyCpPSjd entUoEUNgToUQLPMJvbrt0mBDtHT3Dq00R+TzGrW5RrHfg5iwlmP+yWhQyIaM/dJ1lndSfn7 Cxk1a7kb5e8QzErWXJpF+lnMbGGvDOcKZ/QhbNUD+7QnwJcPZz2b7kiYzaz3To5wph/INt/6 TPiV2Pev+bbEH2PfNPuxAc9obDRbbA+a4SVsQ4WLuIwY/ay1/v9aP2ttQrgSSRSq1ASZQrkp TJ6hUqSHnUhMsCDfuZSdmTpmQyNt0Q7E0Eg6T2wbjZZLhLJUTUaCA7E0lgaJS5r2ySXiWFnG KV6dGKNOUfIaB1pKE9LF4o1jabESJk6WzMfzfBKv/vcqoAOCtehGw/XDBx1dpbvPFDrH6bsn awqZ+Z5uaWLoyDbPr/PHO1t+2qSHj1xcZt/BstaYNb+LaudPWcvrDnlCIjKrF8RFHugoiH+3 TjW3hQ79RMX3998pDR1MuzRhjNl1YjiSfG1PWa7Dq4rSzu3M3Er1NK72hu15v+Y0bZhD/VqS ++JsuFZKaOSy8LVYrZH9Bc2mjzMqAwAA X-Brightmail-Tracker: H4sIAAAAAAAAA02SXUhTYRjHe897ds5xODitUQe7EAYiRVlGxhN9IHTRQVCCgj5uauWxjXTK pjKzD3NCZGlZXdicMpvVmspkmpumYmrqiKgm1bLlRGtUyPxa6rSyzYi8+/N/fs/vuXkYLF0k YxiVOlfQqBWZckpMitP26Lc2+44ot3sD0WC0NVBQv6CDR6NOERitrQiCoY80zPYNUGCuncNg fFVCwg/bIoYv/WM01NtTwffQT0LHVQeGsZuDFJSVLGHoDAVoKHZaCOitdongdWu5CO4uPsDg KBqlYajdSMFIw7II/D1lJLgMj0nwlSdDv2k9zL2YQNBncxAwd6OagjtuEwXjJT4E7t4xEqqu lCOwdXlEsLQQdlQ9H6GT4/jeiUnMtzz+QPBthk80b7Ln8c2WzXypx415u/UaxdtnbtO8910H xQ9WLpF8m3OW4Mv0AYqf/jJM8pNdbyne/HWK4G0tb8lD0hPivelCpipf0Gzbf0qs7PxUReS4 ZTpHTZAoQs/WliKG4did3IvAjlIUxVBsPOfxhHAky9hEbnZsgCxFYgazjRTX1/CRjvDrWA1n r0uOMCQbx9keFFORLGF3cRXTN0SRzLGxXH1T94onKtxPFz9dYaRsErdwv0T0l1/Lue59JiNK HL5rq5FGahxe1T+pwreQxLCKMvynDKsoE8JWJFOp87MUqsykBO05ZYFapUs4k51lR+GPeHjx Z4UTBYcO9iCWQfJoiTN4WCkVKfK1BVk9iGOwXCYxD6YppZJ0RcF5QZN9UpOXKWh70EaGlG+Q pBwVTknZs4pc4Zwg5Aiaf1OCiYopQluGB2Inm87mdY/7cH8tUdhYV9d80NL6ilO97LpwWRfr +nyMXvM9ND/yq3tPhtm7+8r937XsLWPM+4YM86VN8pT3w/EZ/sKt9IDXf7z25IRpKmmdbka4 8O3NSOsJSm9NfbTcP2UYN/4irp8mi7+lWKj278aa+W2y+MoDbV7/Pquc1CoViZuxRqv4A/Ra oSoNAwAA X-CFilter-Loop: Reflected X-Rspamd-Server: rspam11 X-Rspam-User: X-Rspamd-Queue-Id: A54C31C0008 X-Stat-Signature: ek1eo4aehnsx7ntbohf6d67a3jmziq4a X-HE-Tag: 1750392765-575395 X-HE-Meta: U2FsdGVkX1/J5ahkU5IHpseHnvxRK5fGqMRFTmr5AIJAzKaTgYBgSzb50bRfUDpmUdilmGkqQ1YbCMpIxRoMpR2DKFNPIspdEVPSBf8p2zAKUnjwRoSDOQ3VTdvmWrXMitzNtnysuICO6Ezi2YRQrRApJ4+5owultXTtNuD5vvOYHiYrbWkaJ2uxUpkmwiIPEwJxfEgs4HnpyhMpOYDn5te9dlPZw5lJ7lZzdGqu0xf7XSFwDEY/imHRsXAjBV0P6AnT5+NQ6o2TcxKJYt2gIMucDExPdNJkl2qmAHa+EdNZpbGRym+R7p9HOR5k5EXS2lhbWrCGtrpWdqz0uVTg6q8lo3FM4ZTcPZlAvzKaHAupSiTlQieS3hQSvISCtdFtmFCSPk/pVLKHsukZLdZNI1PygEwNz82Socr6Lyj+umIfZ7nk8CQwbylLd0HWYDlb75y4gbt+/dlH2Aua0MUstFwBoMgQWnQoyTpTNzqepXANzAkvxCSS9DlDaIXDYbQGjYCgjDnG7K+H9y186bsilGUvodHfp2HpLt6g28KRXFe7mZUMEr5NVKl4v+TORGSich7nnNutFZPc7+Zjl4suQClcAFGtc8Q29YVEPzF6SAwu9+9JATtXaFWGPDL9Mdzhd2tiM/Tdf0P1AHbUfC612VgJjBuyc3nitXdsC1/ouFTD4WxX8LSCI925PwoB6apUDkEGiBgpv/le0Iqxcf5MzSFqab9whFx24NVGofz5yVhFONxkTt4jTnzspb+irlSYG5ACjzzaa4uP+TyPtWRCj+3FPW8O164aWgOL2lxRWi2BHRXHLwW9Cmzu7RSPpmN0nw9ERRmbj3ETodp9ZdyDqOmOm3dcSfTMnINlfDJDD1CnNlaIo4T70NEizPXmaThRSzX0+ZNJzBlU7cFbmL7gorrtQUtPuBLLtRNRKNS3X8AE/Pda5rXLjTgja0ywmd738nf7b/bbDwOsQA+LNby MJgO8tQs 8hGcHvG7gJgqjVj80WTsIfl185rRTeELciHFtohAu2Kz1z1dFeWrYVh9FVy2EGYHW+6MVaFqZ8qakvAtKaWFMLEA/LdMi+wsJltORhTyZWqKotINU7vUlnWMhau9jZztvANJDz+1NW8BNhg6bv/ngvkWCY00EF24u+WBP4rPr/prSxkRDg1TER5f+LEBhrLduvh1kUKYo35XHbtv8d+BQLT6/5UzDyCXYQMS/i0ENW5MUgOwrw4qOuhSUAWV1ALuG1rJ24m2TXjHJzTgLlAtlpaxpuJuC2nzMky7s 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 | 14 ++++++++++++++ mm/page_alloc.c | 1 + 3 files changed, 15 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 d49ed49d250b..3d1b1dfc9ba5 100644 --- a/include/net/netmem.h +++ b/include/net/netmem.h @@ -56,6 +56,20 @@ NETMEM_DESC_ASSERT_OFFSET(pp_ref_count, pp_ref_count); */ static_assert(sizeof(struct netmem_desc) <= offsetof(struct page, _refcount)); +#ifdef CONFIG_PAGE_POOL +static inline bool page_pool_page_is_pp(struct page *page) +{ + struct netmem_desc *desc = (struct netmem_desc *)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 + /* net_iov */ DECLARE_STATIC_KEY_FALSE(page_pool_mem_providers); 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