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 A3864C61DB2 for ; Mon, 9 Jun 2025 17:39:23 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 1D7B76B008A; Mon, 9 Jun 2025 13:39:23 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 1AF766B0092; Mon, 9 Jun 2025 13:39:23 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 0ECF86B0093; Mon, 9 Jun 2025 13:39:23 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0012.hostedemail.com [216.40.44.12]) by kanga.kvack.org (Postfix) with ESMTP id E60876B0092 for ; Mon, 9 Jun 2025 13:39:22 -0400 (EDT) Received: from smtpin13.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay03.hostedemail.com (Postfix) with ESMTP id 8C9B7BDE6B for ; Mon, 9 Jun 2025 17:39:22 +0000 (UTC) X-FDA: 83536573764.13.35275AB Received: from mail-pl1-f181.google.com (mail-pl1-f181.google.com [209.85.214.181]) by imf21.hostedemail.com (Postfix) with ESMTP id A48C51C0007 for ; Mon, 9 Jun 2025 17:39:20 +0000 (UTC) Authentication-Results: imf21.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=L6M4sJHY; spf=pass (imf21.hostedemail.com: domain of almasrymina@google.com designates 209.85.214.181 as permitted sender) smtp.mailfrom=almasrymina@google.com; dmarc=pass (policy=reject) header.from=google.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1749490760; 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=9RRpRkvuNJy3cXkOhH8biChoDOFuxh8lZ/u2fpQqLzg=; b=nPrJVi+3FvbrpnETcauZlOWR+B3LbZ+ag6qm8G7D51Gm0+TxAUWZGQan8wzTPz0323kQv8 Jjy8Haxi2tNGjStZXBe4RdcbQ36D0ZPyi2gbBOk1XjY6G2NuiprpPVD8LBOrmv13MhKtas avDdvrq26yT/kuC6R1hx+bQ2PQSgR6c= ARC-Authentication-Results: i=1; imf21.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=L6M4sJHY; spf=pass (imf21.hostedemail.com: domain of almasrymina@google.com designates 209.85.214.181 as permitted sender) smtp.mailfrom=almasrymina@google.com; dmarc=pass (policy=reject) header.from=google.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1749490760; a=rsa-sha256; cv=none; b=TIH0PX3cKv5tKXMJmzSDoRWOaOCdhWqHbDTyLGbAmsamOxJgK3R9ai7TUvX5Tn9e0EWG52 /faAJNrgX+TTSJUKpfl/wHyx4qc01CsszecyKngk9S+ZcDBFeMk/kUYH16/ylO4dTmnBPF tRRKzN1vv5JDV9yZTakpZ71lvxjoj2I= Received: by mail-pl1-f181.google.com with SMTP id d9443c01a7336-235e389599fso25725ad.0 for ; Mon, 09 Jun 2025 10:39:20 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1749490759; x=1750095559; darn=kvack.org; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=9RRpRkvuNJy3cXkOhH8biChoDOFuxh8lZ/u2fpQqLzg=; b=L6M4sJHYcZR+20MzELGQBNNpAnfkzuYUZgu+yme+MfUuX3xGTjmekDzUxqCXkwrbuT mHMTn/1O8QTENTxrRCTnjxemgPJcMPZBpJJK2CAN+hJ2LWnn4Ty1PFhrODXGCmuK3NQc m9+JxknH9TfdIPjML4R76IZZfJh/ZDUsraAu7HRv8zcVs/xmNUT0kku4jwl6aHPwHMhA kyHydx+j95Dea7OTqEB3ipy5/FevJ+d7Tu82y/hXGCMLxN1blSC3dw8bRcF1iyOSjxE9 ZBd3uUTkiSlm9nZod8aBN/Hj5KGTqpOziJp2HMswWO89adSvIaf7nKq/c3ByXhJzitG7 S/Rw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1749490759; x=1750095559; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=9RRpRkvuNJy3cXkOhH8biChoDOFuxh8lZ/u2fpQqLzg=; b=DIuF/EhVQFSFufEKPKrGibmFr1GClOM7pkuAk7kz7XikVJS8VMe/2G+YtZ4U2oEb83 1g2FOKIOXdoaMXA+AgMVqgFVLOm3Ny187ybKyYDS89fG5Lk7MZ9jjnQuiYEGVwfLeiwI Caph7HfEABZECN3YlOReVyiyIE6iEJ8DaOSplZk6gvDxfH8gQwLcs7u7tEHKbibuxs8v 9I0dvoTjVu7e43KjZfuQGhVsdfpRwRl5o7WY6xVW9EQU9iLrxKHW78qHACGZomWVy9wW /BurFl+SwirIp+DMjQ53Vzxc1fAVjDz5GVUra++rTZurxTKlkcuyURiDjOnRzPB9OGt+ w5SA== X-Forwarded-Encrypted: i=1; AJvYcCXTs5aHJEAvX7z2dVmpVK3ntWcWNsDmRkykHjkBcEpOIQICXVSx88ep8kxeqqCyfu8H/0cPRAINNA==@kvack.org X-Gm-Message-State: AOJu0YxVme1U5vLFLz2X2kTUj9hRDiTFrweZt18bRaAFKSE9VowtT7z2 SQaedUbboizBmlb8wks+s9EpX6RdxE12A8BORDUrwNqjaHeHkV79cB+16hqcPuZ4G4VUTCppr/N VQHz4jktd95hjRVk/5mqnsVfmE46Oz9UwZFMS3c0U X-Gm-Gg: ASbGncsSoUV3ErJN/8L1ZN0lNkbx5aY/K6YndxIR9pyZHS5ZS38ZTc4eUVqouASIapX n+NsgDDd8Cm/bUmgRuBkJyYeV4pWfZ7sey1rEomrfJhu1T4cMQJG2GJtfJndyrFwSonoOlGqnss WPFVN0KGxaUjkoHgzZNf36HZaiprdNELDWMKyfF9oYs08TjZJyJzSmX3y19Bf/9kaCwjaLQTnNy A== X-Google-Smtp-Source: AGHT+IEvrq24XpltBFWvdSIlKpCIc8JCZdMNJ6F/M800m9IOuRhKavTYagOECC3DsNK5G3lKUSM8nYe/B6o3T3jdn9Q= X-Received: by 2002:a17:902:e745:b0:231:ed22:e230 with SMTP id d9443c01a7336-23613de3742mr5147245ad.15.1749490759104; Mon, 09 Jun 2025 10:39:19 -0700 (PDT) MIME-Version: 1.0 References: <20250609043225.77229-1-byungchul@sk.com> <20250609043225.77229-10-byungchul@sk.com> In-Reply-To: <20250609043225.77229-10-byungchul@sk.com> From: Mina Almasry Date: Mon, 9 Jun 2025 10:39:06 -0700 X-Gm-Features: AX0GCFuAdxMyfuOpDJOl1NBEK5X2zXvXF5ManUgjd3SO6IAFQ752DFSmiJ8__HE Message-ID: 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 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, 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 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Rspamd-Server: rspam03 X-Rspamd-Queue-Id: A48C51C0007 X-Stat-Signature: ekb58js9h15cts134hs1wkgh744m4nch X-Rspam-User: X-HE-Tag: 1749490760-435157 X-HE-Meta: U2FsdGVkX1/nnSVIapGM83GmdYcXjujmKNukwtutVtLZO20t9qTUcsOadFcgB+GzvX36XOg0zwzZRpc9i8WTII7RznUhK1MM5qVQKVhCJAKGu9DZJTWyxYD5NUJiRBVTHD7LSQBXXZ1QgXbO6ZViiJy64yDHvaHn0MTKprGU3nMe5lvVpdY0Pm0yhqaUE3LyacElxf6EzOwIMZ/FbmzAZa/65/NrVSXiHpcckzXPvuaOP5K/cHAGT+gGZzaHMgMDU6gwrO+nRYwPmfpfAYMphtvet62/weP3BakQKtkAd8/9iKV7YF5DSUbzcLBo5L+8+y0loLkPocnqAP4rCGGhv9BllhVPqm3X56wExT3ENNF86J9b4SfxqLUtu5mY1sjVQeIfoouTetONDFrSn720jDnidhMIUfuj3xi4BFF95V+kAGOTUmo2KNGfPYKsQiZnD/ZpBvdMsZMf9QIF89lppcuM9oNAsTRePmhyAHhrJrapfVa9oZsLcqHNBWlQUD0ddDUP2+huy9d9tbKXXwYBvMDX8UGcq4optGU8zqz7uXDMrCafvtlZCeEQhyWIrOJnTZSxIn4JJtoC+/hZ+O4HZ0c4aXWdFTkGzp678OBoV1pC5rYyMFzwBh9vxpQE8d5D9NhmF1jxu977rZsFcyBwl2X3sBqI+fueTDQEavYRvVr5DQcWGEQWnYBeQpHz8BKk1+ZVRfoTjlYbo7AeS/r7v4x8WyxSKswWt+6zJ/+2KKDHO3j/FhPVZrnh7SPrnUKsXuH7eEOUPOmIxwFxkVaLxK868vBZqCvO8FsSGmfUVtzcdeb15F5neZZlsvLEOG2nBb07QWfQVn5Nnbn5zfl3J6nI9/KS0aTOJ8uTDOz/S4IKZfOY4edZZTRl+vIgO9dvBvOgfroaR1955yosO/Pm5YtX+IAVu4IYen3DPGp2K3YI6EiCGY9V7kN4MkO4GmamoMpzC12WH2w+DR7wt8g b0SkCY3b YJjRm6s7LAywIJS9ZfGeXKU9cr0QpIvAhvmL1TTair+4MuCTAh9xGcAX3Vy4qkpMwilRx8Sruc8hcKzsrBaCEixC462ZP3rzwYlUtgIfTo67HrbWoPKTShfAlsbL1LWIsps8vo2Qa8J0vTgHseMA+3aw56wLEiR/pz+MWByW0enpueQP2nMqokCVKKmJmfBMURLs0l9x/wvaG5bAerEBH5tGVPx0WoAx8Xif4P4W/5L0c6j+5C70bp7Rw3Gy6Z7JNfuh5jAeAzZbq8ggaZM60ysxTH3VUuNIUoBbESf03Zj2JKlP8IwxOrTDboSfncDF/Cf1RGd4j/11rq9MPi9WXQrn9js85h2qELzEEqGVbrpP/yDvUm3XxCrgkzNYj9guTdn/fn5Ee4CNCHVm8jDz/I+4QX8c7rZnBDEj5ag125TxSQN4= 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 Sun, Jun 8, 2025 at 9:32=E2=80=AFPM Byungchul Park wr= ote: > > 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=C3=B8iland-J=C3=B8rgensen > --- > 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_stru= ct *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) =3D=3D 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) <=3D offsetof(struct page, _ref= count)); > > +#ifdef CONFIG_PAGE_POOL > +static inline bool page_pool_page_is_pp(struct page *page) > +{ > + struct netmem_desc *desc =3D (struct netmem_desc *)page; > + > + return (desc->pp_magic & PP_MAGIC_MASK) =3D=3D 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 But I don't have a butter suggestion here and I don't see any huge problems with this off the top of my head, so Reviewed-by: Mina Almasry Lets see if Jakub objects though. To be fair, we did put the netmem private stuff in net/core/netmem_priv.h, so technically include/net/netmem.h should be exportable indeed. --=20 Thanks, Mina