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 DF91AC5AE59 for ; Wed, 4 Jun 2025 02:53:49 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 6E5BA6B056D; Tue, 3 Jun 2025 22:53:12 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 5F9446B0568; Tue, 3 Jun 2025 22:53:12 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 498476B056C; Tue, 3 Jun 2025 22:53:12 -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 173976B0568 for ; Tue, 3 Jun 2025 22:53:12 -0400 (EDT) Received: from smtpin26.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay01.hostedemail.com (Postfix) with ESMTP id CFE091D80B0 for ; Wed, 4 Jun 2025 02:53:11 +0000 (UTC) X-FDA: 83516196582.26.D423171 Received: from invmail4.hynix.com (exvmail4.skhynix.com [166.125.252.92]) by imf08.hostedemail.com (Postfix) with ESMTP id 11304160002 for ; Wed, 4 Jun 2025 02:53:09 +0000 (UTC) Authentication-Results: imf08.hostedemail.com; dkim=none; dmarc=none; spf=pass (imf08.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=1749005590; 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=bXJcSaQ/buoi6YcxIkymmTYFaUuysCTIfKFVMRkHzmc=; b=xV8rZiNcFQGSGduoec66DU6uNHcjplw4G1miwQG1CG+sQnRcpGrdUIarlYEQ5NUbwDtzVH utEW2NaFfqtjHXuk2opb1lk+UJLmhuQng1y9N/Fb7/g3c0DKfFlcSCjmZWZ/xh9MLj7YqU 5kAr7GfL0HdKIGRcJTeK2Fu6Q0C8tLs= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1749005590; a=rsa-sha256; cv=none; b=uMBA4lGwAIgiXvogVQ6Ce8x7+srgIr1gZj2eKSu1oeL/2YK7uoel8TyNdOVtQg7JPqARl2 L8VAoMKxVwqMswqamjRLt3m6qORTZb2Srh84TWU5wXzvVfSeZ7S4jizAnmR8DY/S+3qimN wY875PD6UQ1rT9U1acxngdwa1EHRS1Q= ARC-Authentication-Results: i=1; imf08.hostedemail.com; dkim=none; dmarc=none; spf=pass (imf08.hostedemail.com: domain of byungchul@sk.com designates 166.125.252.92 as permitted sender) smtp.mailfrom=byungchul@sk.com X-AuditID: a67dfc5b-681ff7000002311f-70-683fb50a0023 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 v4 18/18] page_pool: access ->pp_magic through struct netmem_desc in page_pool_page_is_pp() Date: Wed, 4 Jun 2025 11:52:46 +0900 Message-Id: <20250604025246.61616-19-byungchul@sk.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20250604025246.61616-1-byungchul@sk.com> References: <20250604025246.61616-1-byungchul@sk.com> X-Brightmail-Tracker: H4sIAAAAAAAAAzWRXUhTYRjHe3fenbMNh4cldlL6cNCHkpVm8ZRi3hjvhVDQhaQXNfLUVtNk fkfhKsO0tsqCpFZNRXNTmkzLGSZlNhXNhh85yzQWRokudCbqpJor7378n//vf/OIKNlbHCJS ZWTzmgyFWk5LsGQ6oCJS8uygcnfZ1AEwWOppqFvIhydfbEIwmJ8jmFv8xICno5OGqop5Cgzv izD8sixRMGF3MTBe8w1Da3EzBa6bXTToirwUXLbVCsDxXC+Eu0vVFDRrvzAw8MJAw1j9HyF8 a9dh6L5vwjCuTwC7MRjme6YQdFiaBTB/4yENd/qNNHwtGkfQ/8aF4cElPQJLm1MI3gUDnRBG mkwjAtJy/zNDjNYc0lgbQUqd/RSxmktoYp0tY8joh1aadJV7MWmxeQREd8VNk5mJj5j8bBui iaVpCJNeYwdDPNaNR9gUSVwar1bl8ppd8SckyoFuB84clOVXXi1BWjQaWIrEIo6N4dz2SrzK jzpMghWm2W2c07lIrXAQG8V5XJ2+jkREsW4hN2Hw+ktrWRU3U+ryy5jdwj0uHvGzlN3H/bAP /R/dxNU1vPIPiX35qPue35WxezmdbZBaGeXYaYbT3bAJ/wnrude1TnwLSY1ojRnJVBm56QqV OmansiBDlb/z5Ll0K/I9t+bicqoNzTqOtiNWhOQBUttovFImVORmFaS3I05EyYOkm8J9kTRN UXCe15w7rslR81ntKFSE5euk0fN5aTL2tCKbP8vzmbxm9SoQiUO0KKe3eE/TerS42Wz6nexO njoW+p0hWwvnHNqz5sT6aklKbPihB1X49rWC6DJt3IV+756+/eWK2e3v6qrO6G0bIq5vLirT Dq9LVIuTguraSPEd8eR47HBgvSesMPKp51le0imeofoyl3eMkUbTZHJDYcBL5nCwPCrGGxnY lNpTI8dZSkVUBKXJUvwFNZAvYNgCAAA= X-Brightmail-Tracker: H4sIAAAAAAAAAzWRXUhTYRzGe3fenc3l6LiWntQQRh+kaQpaf6jMJPGkEF0EgTc68tCG25RN RZNwpSGO1JZRotNWos1NnKjpTBGbYzoSFD9ilqVNFKMwTbOpQemiux/P183DJ0QmHMyXq3JZ tUqqkJACLLh6riRS8OqiLFrffxQM1lYSLN4CeDlv44LB3I1gY+sDD9YdwyQ0Pt8kwDBWiuGn dZuARaeHB3PNSxj6y3oI8FSNkFBRukPAPZuJA0P1Li6Md1dy4fF2EwE92nkeTL42kPCp9Q8X luwVGFy1LRjmKhPAaQyEzbffEDisPRzYfFBPQvWEkYSF0jkEE0MeDHV3KxFYB9xc2PEayAQJ 09Uyw2F6az/yGGNHHtNpCmd07gmC6TCXk0zHj0c8ZvZdP8mM1Oxgpte2zmEqSlZIZm3xPWa+ D0yTTOPyKoexdk1jZtTo4F0LSBOcz2QV8nxWfTo+QyCbdI3jnClRwYv75UiLZg/okB+fpmLp BkcLZ49J6gTtdm8ReyymYuh1zzDWIQGfoFa49KJhxxc6SMnpNZ0H7zGmjtHPymZ8LKTO0F+c 0/jfaBhtaR/0Dfnt6rMrT31dERVHV9imiIdIYET7zEgsV+UrpXJFXJQmS1aokhdE3cxWdqDd /5rv/Nbb0MZksh1RfCTxF9pm42UirjRfU6i0I5pPSMTCsJO7kjBTWnibVWenq/MUrMaOQvhY EiRMucFmiKhb0lw2i2VzWPV/l8P3C9Yic/lZh77a4lKZuvXRy6MWjy61rddTl+to8lKqy8PL kYPZzc669H3+xTMXarTF0ohLndOHaz4nFB1RlnvfBDZETUVUPVEZ3d2xcYkLp46z0aHGNLw9 NF/VZk9VFCX1JQZgxf6vA0nXJX1XRn+1tsuSD40528SrQSEElRLqmJFgjUwaE06oNdK/gSRD AbsCAAA= X-CFilter-Loop: Reflected X-Rspamd-Server: rspam06 X-Rspamd-Queue-Id: 11304160002 X-Stat-Signature: 1jgg6u9uhu6wazomnc8p99f5rdr93pi4 X-Rspam-User: X-HE-Tag: 1749005589-587460 X-HE-Meta: U2FsdGVkX18FHBm8ofD9EuVes+7VKogr6zGyfjbc/B5eNvCvLEcdJe74CQF0RVMQ2Ha8Xxs2JMgdadkZYTCssEVzh7LxZcFmh3hCvXj1jhIWMw6qytWm07C39d50vz0GZJgSWXQGbFtUNKbOjLK9iSM+uLmrr5deHwGKMtOTKTgnn+M6UDgTLtZir6aE+KHkwsmiieEkAscnrB9Ki3IJK3v5wRVngy9Y7F23P1+XKZPb5ZgL56b3GZKhIZPoi1OOP7O3z63UhQiwa8PV5X8h+9O/+8m67CmyOib1dJhxE5ci57NdEhDs2CvFB5zRUNtWl/rnzdttrh6bbN2Jzo6DKCtcZKTLngXO2H+gQGJ8GQM2+lB6TM42gPngesaMKcaHc4H4JEHuJ0haQc0+w8EdblSSVniMUFtpgPIWgW1i5Y1bikY3M73ndqGDRAad7jORRLflvcmeNn4eEnBDta+8Aak0+I45VQ9SkFIzPpQLWyJflguyCO06S2jtrR7M4ocIpm3bgRlkY6lCnSfKgbTIp8mh68MfvIwf9h0aw6ujcBIAmLIZM+KveIMhFDNfW/ITy0P/rkASSMCY83kvVM5DJLoXnUhF+xOh0C40WBayOQrt7PQgPpCw0kY+c4fnBL6w3P3KYeH3OOdnID34VULIBtifQUntEOONvRzRoft79APR90z/NBIf6Fi9ryyAxIm64CSEVtxPqn/kII3uCJs1MeNoLFpAXoju2q49lUWJjg9qeM79GHYqN0zMVak1O0mE2aM6/eEmrh1OZztp0rDNeAI4rhsEMgxE6zU1+FQsfJYffGs525ies7wB/rVtLe0bdTbbdEok/qHnxTJKmj8w0j8k9DIDAKSWVZARYrCBdURogsFsxp1PEEpkGyZPszoVzhH6yZ3EqkxTxDER0wnAkUIELuNAqEAQxHQ8dnnFyh9W4zZfBQCEyHiu440Gol17EQeuhL9HzqNdgXE3n/9 eAZYgaB8 UKjFJIoQNEp78MNKCV0TIGpHebKexemsDdJQu7xAXdS+ZSednwIRbHStUh/l9wG+Avsr+RN/9bNMyV1IXJixgFDiQa/rx9X3ElxUh6mCl4wHZlbHtRo8PieIiig== 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 --- 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 e51dba8398f7..f23560853447 100644 --- a/include/linux/mm.h +++ b/include/linux/mm.h @@ -4311,16 +4311,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 d84ab624b489..8f354ae7d5c3 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 4f29e393f6af..be0752c0ac92 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