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 4C4FEC61DB2 for ; Mon, 9 Jun 2025 04:33:00 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 0A8BF6B009B; Mon, 9 Jun 2025 00:32:47 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 01BA26B009C; Mon, 9 Jun 2025 00:32:46 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id D9FAB6B009D; Mon, 9 Jun 2025 00:32:46 -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 B6D486B009B for ; Mon, 9 Jun 2025 00:32:46 -0400 (EDT) Received: from smtpin12.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay01.hostedemail.com (Postfix) with ESMTP id 72DDA1D707B for ; Mon, 9 Jun 2025 04:32:46 +0000 (UTC) X-FDA: 83534591532.12.165D29E Received: from invmail4.hynix.com (exvmail4.skhynix.com [166.125.252.92]) by imf06.hostedemail.com (Postfix) with ESMTP id 893C6180002 for ; Mon, 9 Jun 2025 04:32:44 +0000 (UTC) Authentication-Results: imf06.hostedemail.com; dkim=none; spf=pass (imf06.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=1749443564; 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=NpzuMQP6/+06dvzDqWwfDI4p69LqtPZeoLwEkWfbE/4=; b=brcwCYMOX2MCmOhwY+EkuReMWOgievgV2zUl00jEJVv4siZeQOBdzkK/0XWsSD9XfyiVPN 9zc1D6iA+27juWcqbyDFWnUrF5R0Dcn4eWc1WTZNcHrVsqwy/EQ0HMD4cFtqw9DURE3d3t J7iblQoeZirUKgHPFof56rT8iFjy908= ARC-Authentication-Results: i=1; imf06.hostedemail.com; dkim=none; spf=pass (imf06.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=1749443564; a=rsa-sha256; cv=none; b=n2gIggnsz4Q8kuaziRIIEpe+4TNqJgk5fXND1fKfTmGzevSzJG+UB19YChrU/9oIn62DRu piTD6gz40R0KjcL3QCI8FZhTt5WRuAUtu2HBY1Qowd92ONLb2cf2nk9ajM9Dr8og59aiXk I9mHh+MkJorDcTHzr/OXWsxe1opSKdI= X-AuditID: a67dfc5b-669ff7000002311f-a3-684663e4a09b 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 net-next 9/9] page_pool: access ->pp_magic through struct netmem_desc in page_pool_page_is_pp() Date: Mon, 9 Jun 2025 13:32:25 +0900 Message-Id: <20250609043225.77229-10-byungchul@sk.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20250609043225.77229-1-byungchul@sk.com> References: <20250609043225.77229-1-byungchul@sk.com> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Brightmail-Tracker: H4sIAAAAAAAAA02SXUhTYRjHefe+5+y4XJ1m1MmyaBTVUMuweC5KhDDerpLsoi/IMQ9tNT+Y H2mUaC6qpRalqHPaxLKpxWLlXCFRU3KipGnF+tQ0vSojV2NqUZ4k6u7H//l/3DwcVl1gIjlD Ro5oytAa1ayCKD6HN8R81O3Sbw7cjgSb8xYLraF8uDniYcDW4kbwbfqNHAJd3Sw0NgQx2PrN BL47ZzCMPxmVw3DTBIGOc+0YRi/5WCgzz2I443HIYMBdzkDFzA0M7UUjchh6YGPh/a1fDEx4 ywj0WJsJDJcnwhP7Ugj2fkLQ5WyXQbC0joWrg3YWxszDCAY7RwnUFpcjcD70MzAbsrGJa+i9 5lcyet/6Tk7trlx616GhFv8gpq6WCyx1TV2R07cvO1jqq54l9L4nIKNlJZMs/Tr+mtAvD1+w 1HnvBaF99i45DbhWJfMHFdvTRKMhTzRtSkhV6Mdaf8qzyiLyK3zl8iJ0mbegME7g44XQ+Q5k Qdwfnr64UJJZfr3g909jiZfwcUJgtJtYkILD/CQjjNtmZdIhgs8UJp5V/GHCrxMaq32MxEp+ m9BWOYnm+1cLrXceYak/bE4f8edIsorfKnifO/C8fbHQU/ORSBY8t+usV0kynkuWtNViaVbg mznBe+0pma9cLjx2+MllxFv/i1v/xa3/xe0ItyCVISMvXWswxsfqCzIM+bG6zHQXmnuQptM/ DnnQ1ECKF/EcUocrU6uS9CpGm5ddkO5FAofVS5T88E69SpmmLTgpmjKPmHKNYrYXreCIeply S/BEmoo/qs0Rj4tilmj6e5VxYZFF6Fibp7/CJla+2xh8rNvXtHL3RJU5qy96ES7cMBT5cqiR FkcpNHFRnWtjDpRsSFiZYExJrA3jY2Xvx0KdDaVLDx/ScSl1bG54YZJhf4zPvMOgi6mewXtZ Nxa6a5M1jhBx2w52LqhxX7fsMd+erDGm1g98iH6jOdXeezY1V8OoSbZeG6fBpmztb/NMs34c AwAA X-Brightmail-Tracker: H4sIAAAAAAAAA02Sa0hTYRjHefeenR1Xi+O0PNSHYlCBpSmkPFCUdH0TunyIAgly2KkNr2w6 NJGsSZG6lWlYa9rSNG+0mDO1MmKazgpWmrGu2qbrgpe8ZM0ltRVR3378/7/neb48DJaOUksZ ZVomr0qTp8hoMSXes0EbMZy0QxF1s1cMRnMTDY3fs+HGUJsQjA23Ecx4X4tguquHhuprsxiM jgIKvprnMIx0u0QwWOuh4N6ZVgyuc3YadAU+DKfa6gTQWdErhKe39UIom6vB0Jo/JIL+O0Ya 3jX9FILHpqOg11BPwaA+DrpNS2D28SiCLnOrAGaLK2go7TPR4C4YRNDX6aLgykk9AvN9pxB8 3410nIxY618KSLvhrYiYLFmkuS6cFDr7MLE0nKWJZeqCiLx5cY8m9ks+irS3TQuITjtOk8mR VxSZuD9Ak+qPXwTEbB2gyBNTl2hfcIJ44xE+RanhVes2JYoV7sZ5UYYuJLvMrhflo/NsIWIY jl3PeYsWFaIghmZXc06nFwc4lI3mpl09VCESM5gdF3IjRp8gUISw6ZznWdlvptiVXPUluzDA EjaWa7k4jgLMscu5xlsPcGB/kD8fcmYGYikbw9me1+E/ejDXe3mYCijYf9dcKQ3E2D+pbbmC zyOJ4T/L8M8y/GeZEG5Aoco0TapcmRITqU5W5KQpsyOT0lMtyP8DtXk/StrQTP9OG2IZJFso SSzfrpAK5Rp1TqoNcQyWhUrYwa0KqeSIPOc4r0o/rMpK4dU2tIyhZGGS+IN8opQ9Js/kk3k+ g1f9bQVM0NJ8VJqbm7BmNq7809ptSf1lVbn1u+5q5n/OPD26IiJ8xUzF1eLTGZ74kqH18Q7b xIGQbwtqwuaryFRJkSc42xS1/3py8+6zxoef3avmqysjHMWTH/IiMmtyo7Zv3rJ3rMOreueY cy8+4bt+yKrhvR3WIqPuUWls3cgGV8f7sWXFl7Vz5TJKrZBHh2OVWv4LhMCT+P8CAAA= X-CFilter-Loop: Reflected X-Rspamd-Server: rspam03 X-Rspamd-Queue-Id: 893C6180002 X-Stat-Signature: hm6drr8ssxeotps99m769k6mo4o1itg6 X-Rspam-User: X-HE-Tag: 1749443564-646310 X-HE-Meta: U2FsdGVkX18Qno/ZWXPHf9lK6R4zmsJ4IBwz5kALfJrWl+zLg3evJaiZQ+H1g+3hYwgoayPE1Hmgsv+2466SZOEo5iYzbzF78DLVwMMmyNyqUWTu50csNNi5jxun8JI5NKyNI64NoUYfGhf4+MWhJEgieuOPIEA7o3UYLz7OWxjuFsK7QdUR0jPc14x6lgUjNqn4udhdDngy4BLr2jFlTegYHuM5XMpuXgcvBOHlsGpX0+FPXLcEKVPneSv5VzZ7jsRnvVZSe2V9btAtGedIcLuuXUHnXaEyaprjif3IIjWpiLXGwL1raxQkLf3AZUbmDT6wRHpcZug92qcT7vUNDELNDB2uwgwtd4wAjUwqdjHXZ+rNsPZ5zRD9Uh/HsvXzmScPMl9nP3iTnA9TLilQijm0CCZz1q1IvoVghflpS1Egvjzg8mC5cdFOI13sDzqVjtO2nb2OkcGZ2lRNW3bMVlP0hoYzIIpJu+FZUWmiUZfEd/BSECFESjgDRKU6EyqWYSOaLfWZ3pdFLVtH5b2zskvv4SunNlD6UmrooZ48QCQz9oJ44qmp61sn3TkK4mm/+pN4iMBJRsa/2OniKulIA943NCggzykS6Nh2XXLIIL4or8oIkt+lJq5Gs9mmVDqZWdOz/ebl5z5FL9BrtxmB7cHtj1g1OhLuQgigLlRbBRoprNf1TSlu+qg5/WLIf0xISmbakRPVNx00SXo+XTYaTL4tVyEeaFYEJG4eyojYdD8cHeTENMREj+4FmY/IqWBqrJ5uhMZ7W9kA4THPT///X9wPHFinW0DVS9TxLvBcaWjYTH2Y9haZH+9EetccUAykL7SduqanFscoaQtUtcB/1g== 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 --- 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