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 18EDFC678DC for ; Wed, 11 Jun 2025 14:29:13 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id AAE476B009E; Wed, 11 Jun 2025 10:29:12 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id A38476B009F; Wed, 11 Jun 2025 10:29:12 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 900F46B00A0; Wed, 11 Jun 2025 10:29:12 -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 700A36B009E for ; Wed, 11 Jun 2025 10:29:12 -0400 (EDT) Received: from smtpin17.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay07.hostedemail.com (Postfix) with ESMTP id EA3C2160DD1 for ; Wed, 11 Jun 2025 14:29:11 +0000 (UTC) X-FDA: 83543352102.17.02F25E2 Received: from mail-wr1-f44.google.com (mail-wr1-f44.google.com [209.85.221.44]) by imf03.hostedemail.com (Postfix) with ESMTP id DC0722000F for ; Wed, 11 Jun 2025 14:29:09 +0000 (UTC) Authentication-Results: imf03.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=f2VRNyjl; spf=pass (imf03.hostedemail.com: domain of asml.silence@gmail.com designates 209.85.221.44 as permitted sender) smtp.mailfrom=asml.silence@gmail.com; dmarc=pass (policy=none) header.from=gmail.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1749652150; 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:dkim-signature; bh=5y5kfhj5cbce1cwVnaZbUHmhhz08gC5FIwyfzGaoaCo=; b=gcw5nKr6iTYKUDbhprzn9VaWRxobqEt7LN5wqDEjTm5kXT3Goz5QWjAFnTteVPlGbsDF+X kTq4NXBNFpBLprz1y6H2OfAYADXdXW0kVQOp5e1fVOKDulfkA786Uxc45ljQn+DXI4Ky2/ TxC4MAUUc1yQcg7AjvA4zMu/jyO5Zvs= ARC-Authentication-Results: i=1; imf03.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=f2VRNyjl; spf=pass (imf03.hostedemail.com: domain of asml.silence@gmail.com designates 209.85.221.44 as permitted sender) smtp.mailfrom=asml.silence@gmail.com; dmarc=pass (policy=none) header.from=gmail.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1749652150; a=rsa-sha256; cv=none; b=GMrES0NnrNmb/CqcV2QN0C32Dr95+/pSFIjC//DwklrVnfWHEt0rXEKtfCnQEu02XbFEEE ovnjafC2XuSQyF6Ff966Mf28BPMrVne0AeX0WNL2tyjk7BybbH5nDELP7EAWHAfj6ohPL2 aS91UvptJSa/wnhFh6CCGtAyX1rzi5w= Received: by mail-wr1-f44.google.com with SMTP id ffacd0b85a97d-3a503d9ef59so5644801f8f.3 for ; Wed, 11 Jun 2025 07:29:09 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1749652148; x=1750256948; darn=kvack.org; h=content-transfer-encoding:in-reply-to:from:content-language :references:cc:to:subject:user-agent:mime-version:date:message-id :from:to:cc:subject:date:message-id:reply-to; bh=5y5kfhj5cbce1cwVnaZbUHmhhz08gC5FIwyfzGaoaCo=; b=f2VRNyjldObxVWyjuims/0wClBMpRfO3pUEW4QBnD9g2NgvMvMKMZQY6bnk7R4OlHW 8WEfBYwPSH/0lFewJWplPdBSyEJ9SCDJ1pm42+jb+esg279C7T465KE5rcxrz634r1QM DFVBXm4nCHCWxrXBhu6atrNovZEKeie10lN6ZlfNEYIRNfvTXqtNS1UTpU3emPUR5aU3 uXOr9+FpwAZSXTRLDwDPvWU2KtinuNUgxcTK6MMg06fJeq0lOFIbzaL3WDN96dTpzA4b 624Nvbgb92hOfsQ2WSYTD9LXvsi950a6G8moDAjS6D3+m6yIJe9A6X8PMeNeVNRsmUOx 8u8Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1749652148; x=1750256948; h=content-transfer-encoding:in-reply-to:from:content-language :references:cc:to:subject:user-agent:mime-version:date:message-id :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=5y5kfhj5cbce1cwVnaZbUHmhhz08gC5FIwyfzGaoaCo=; b=bikZLHOUUsqk26ITU7TSEHWESQ7gM6fVCwdR9Q5tlTA8056rHrUqzkapYK7ki5MXlw dgmtSn1O09y/it6mfuyeJoe7QQ0e+kVgclWfDhFr1hm9Dm06twgGgm3xopmRDV5sFm9k BK22P8Q3ARVkjwcSmmTKfBf8+DFluAbKZIl4VJgN3qZ9Ye5bovK2yAK5uWhf4Wb0IJlE K1Dz4hnr1ebrxTCLQjpm08jGEp5ZhtvAinQyzdR3PjMqynnLmUAU1PaD0ImGNHBo/AUL ZSTbsEOelBdySuVq49O0LcxOsjiwlxeL/UmR2Fou4PQ5W5yBKGkKByeWBgSAVVgY1WYi YkVg== X-Forwarded-Encrypted: i=1; AJvYcCXwgYaFktMutfVwfkf8MWQ/M2kNF7Z26fwkMXBfq9o21KEHvKvtlMF3hOawFJk7/aZreAVpNzkZ5Q==@kvack.org X-Gm-Message-State: AOJu0YyBP4JrsNjI1c2pLbw812rnVrk3oYkCD90dMb4P4gW8qfByvEpg +jt+fHS4CBWdxF24k70C0TBoV0pOwocHImIQupQT06xTBseKIAutsgg+ X-Gm-Gg: ASbGncvaU+LDAHlWdeTZmatBS5OJjHSPeEmm+QGKHk3NGFSCALdID2VVwKrP+oUvsa8 XtWvuS76ICqYGotOlfTxIgxuW7lVtQbWQV8JiQ5tx69s1fd/AguFHW7EI8YePEzgZJ2vCwv6TgW +UQJQY1tt08aAu/EuARiQvtMV3zvvQVnRTS8Y21VxKaEmWv/ev252ekQv8vP5Sh2tPoqUoZTwfD FZqtEntxNvDv+xAp/pOTc70hlKNsU0Y7M8gPP0zdGvIEi9nQNc6Od26gDTCHvllmSQTvUFx3L59 0mhDswS/ipxylPiUrVX3ZZpIJfYzcnl6TKVeNTndjiOiEaCYsDTkE1nGF13z2N7mdmCeUss= X-Google-Smtp-Source: AGHT+IHmkB8/NBjZkYtctHG9v624zEnD1N4W2D/2KDPOKG11BkanIXfCpmFC/D77CHTnUyMvt0ZpaQ== X-Received: by 2002:a05:6000:250e:b0:3a3:727d:10e8 with SMTP id ffacd0b85a97d-3a558a1e2a2mr2708910f8f.50.1749652147978; Wed, 11 Jun 2025 07:29:07 -0700 (PDT) Received: from [192.168.8.100] ([148.252.145.22]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-45320562afbsm35319785e9.1.2025.06.11.07.29.05 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Wed, 11 Jun 2025 07:29:07 -0700 (PDT) Message-ID: <937e62c5-0d12-4bea-b0c1-a267c491cf72@gmail.com> Date: Wed, 11 Jun 2025 15:30:28 +0100 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH net-next 9/9] page_pool: access ->pp_magic through struct netmem_desc in page_pool_page_is_pp() To: Byungchul Park , Mina Almasry Cc: willy@infradead.org, netdev@vger.kernel.org, linux-kernel@vger.kernel.org, linux-mm@kvack.org, kernel_team@skhynix.com, kuba@kernel.org, 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, 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 References: <20250609043225.77229-1-byungchul@sk.com> <20250609043225.77229-10-byungchul@sk.com> <20250610014500.GB65598@system.software.com> Content-Language: en-US From: Pavel Begunkov In-Reply-To: <20250610014500.GB65598@system.software.com> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit X-Rspamd-Server: rspam12 X-Rspamd-Queue-Id: DC0722000F X-Stat-Signature: o9ag1o3hraeammrnmywsa7taahpqj6us X-Rspam-User: X-HE-Tag: 1749652149-735931 X-HE-Meta: U2FsdGVkX18L/um3IvlLRFj7IkC0TQRy4OdPIJaN2npFfd926dvU77fBM6yqekMQuupaLA44e02CGjJGmfng6BbeMI+mesgsur+ujgfZFXsHKYHoLya0M/sT3zBItOqYm+61qzg8oOqql+/ZExWOkDChmr/2hKM84feo2wGWjzkB0JFXrHx/ulGxMU/T1M2yZp06TnzPaZY+sY5IYiZ4Tlb9GVoWsdD9YEbv7u37OxYL/6IRpWY/rqvvpc4Ef/7GAPYsvcN1XdyGxo1c5+8cl8R7qu3lIQ07l0aKumWlCiUiNLwxIGTy3b8Bf5LHB91Ip78+rOS1W8qyuO+aAL8a6scy1RwEBIvwSMCoMWDNDnajRa9ukMjIFlODQXIm3hcaZBXk2V1WGJtcWqirEAr4zseYKDYCZ9HZHBwExR3+PJFOrjm4UKQRnsKa+g4/+P2BxNpI9nuXDEZ8w6Af6Qqvu7+DR7dKrVTCBDq51HZHQMCNbJGQyWFrqxiO72VM22ZY4Ks0NddCRdZymTRfHPl+olbwluBT7Nj760YLaYFG4e7rN26UPwaXzXA1wUmpnBwP7RUcmEHZb6aH2mDUMxUtej4eWZVsbOUQzmIsX8CsKXPYgZSevjAqzHL7emLyZmjnqarmOjsQu5sSWYU4XP6QtdcOKLCB/foc/C51j46pyShYUK0BvimVxIhsR4jioWP1sXoVKbG+1aPvHHO5mVwij7VdwB6kfx5Tn2vK9Az61D1mke0xlFOBiD6cEu3AZYbhNumNgZTXO8f5g7Es/I1bqXr7Kt3OZVTqPsmY2EVaMLKWp4sTrMY9xG9kzvRXDKzZY3UhvvhRoMhU4ACARuBmBEKiDS1zdcEuXvit+ZnfH1kIPowFSQPSIL82VMfP4WPC6xzHVUZfsejgwaRixtzMQSb2HDha0BncDrM6Dv2bOWBK8If6srNSPsxiayPfvkIXT7aht1u2zojc/05q3dl eGjuLrhf 3tTjNnOWcgUfs7J9A/5O+FX+qdxe8yil1tv3HJluhEvdaykBQeuD9x0YKH5eAYd2eX6txDof9UUSN72Cr3YaOMqRBC7MRWzKM+lR1mZD50qnwBDzaOS0l6evcwk60sr6ApWcFHsZSxCS3xPvz7mAX8UKevf5jVorbKr9xDrfwAWZllbvcLwn8gzxZYwM88jET6UYbBUZOqbl2ZD6TlCt8Lhzh/zq4IEJ/HHgileMldynErzonQmgLD059DjEGlcohsKOGoFZHbQJsbNGyM50JURrpElQol0zo8oFrxc2CJRLjIusW3UP8pXvS5uydNoeMEpRsQN8qSZ+VsmjV60oF9CupDsXC/sEBAMR/gl/jxU0ftjFBhaiUdOE5cSI/G9eydm+w51c3rzooJRSeyQX1Zkq/LXMTaYZoHOfljbFdp0owHzA450H3VAGsKWZM9W5HgjjDcz/1/GYo0vHOzuT7XSdt3rgby5rSLvJsom0vcTWOkPBTRu2tSQm3UQSL6yxrSjloj46bvICcEyeeeRjz6sqmhZfEyleWmud/mQOEYF9xB0lTTbBBXbnF4+ThdowuSP2D11v4mQ9r1PwB4FTn1ldsaIMJKD37BpdKcz3C3Mf+q/1RNXf8EZ9qlGH+UxAFRt3sV3kNpvf7ks/IC6n9Rixi91i3KTCAXASJDr2XNfsiRWxHUFuCRudoXA== 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: On 6/10/25 02:45, Byungchul Park wrote: > On Mon, Jun 09, 2025 at 10:39:06AM -0700, Mina Almasry wrote: >> On Sun, Jun 8, 2025 at 9:32 PM Byungchul Park wrote: >>> >>> 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 >> >> mm files starting to include netmem.h is a bit interesting. I did not >> expect/want dependencies outside of net. If anything the netmem stuff >> include linux/mm.h > > That's what I also concerned. However, now that there are no way to > check the type of memory in a general way but require to use one of pp > fields, page_pool_page_is_pp() should be served by pp code e.i. network > subsystem. > > This should be changed once either 1) mm provides a general way to check > the type or 2) pp code is moved to mm code. I think this approach > should acceptable until then. I'd argue in the end the helper should be in mm.h as mm is going to dictate how to check the type and keep them enumerated. Reviewed-by: Pavel Begunkov -- Pavel Begunkov