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 17D5DC83F1A for ; Mon, 21 Jul 2025 08:05:36 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 7A0416B008C; Mon, 21 Jul 2025 04:05:35 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 74D246B0093; Mon, 21 Jul 2025 04:05:35 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 59F5D6B0095; Mon, 21 Jul 2025 04:05:35 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0013.hostedemail.com [216.40.44.13]) by kanga.kvack.org (Postfix) with ESMTP id 2C7866B008C for ; Mon, 21 Jul 2025 04:05:35 -0400 (EDT) Received: from smtpin06.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay04.hostedemail.com (Postfix) with ESMTP id E88871A0689 for ; Mon, 21 Jul 2025 08:05:34 +0000 (UTC) X-FDA: 83687537388.06.672A5AE Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) by imf29.hostedemail.com (Postfix) with ESMTP id 9DC9512000E for ; Mon, 21 Jul 2025 08:05:32 +0000 (UTC) Authentication-Results: imf29.hostedemail.com; dkim=pass header.d=redhat.com header.s=mimecast20190719 header.b="R5YW/cJ3"; spf=pass (imf29.hostedemail.com: domain of david@redhat.com designates 170.10.129.124 as permitted sender) smtp.mailfrom=david@redhat.com; dmarc=pass (policy=quarantine) header.from=redhat.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1753085132; a=rsa-sha256; cv=none; b=BshIm8Na2SqkCsTPQk6+Yh0HdHXJwLb3mjERlgLfmYvHvA55Wy7T/Kl9WvWl1UgR0G3Hks fB2jBmFW4qvBYyU76oiFC/dFTMbmFvvc3SNGcqLEXgVcGhcMu+b5ms4jXYoNdf8OuAjBcI buMOUtGoIQE28L1Pt3UuA/FtWzOerQI= ARC-Authentication-Results: i=1; imf29.hostedemail.com; dkim=pass header.d=redhat.com header.s=mimecast20190719 header.b="R5YW/cJ3"; spf=pass (imf29.hostedemail.com: domain of david@redhat.com designates 170.10.129.124 as permitted sender) smtp.mailfrom=david@redhat.com; dmarc=pass (policy=quarantine) header.from=redhat.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1753085132; 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=YZwimYc/XbFaUcGJkln+p9HtaqBU8QoZiA7E2Ky46WU=; b=DTRp+sYEt5+nVEPnMMzoeuzzcKWXMYw/l7roj8EACmEy9+Sb06jwUO3S3/kX4WqjbxUvE5 M+5CB+OAZUeSzSsy5I6MqhZZFgzI8xBMoicKzEDJVFZG+lhZhBPn16c36KBT/N7QRi8mqp k49oqtMbDKFaVOnjVeFW+/e7zVGlvBE= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1753085132; h=from:from: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:autocrypt:autocrypt; bh=YZwimYc/XbFaUcGJkln+p9HtaqBU8QoZiA7E2Ky46WU=; b=R5YW/cJ3a/PSn8GXIFL8YY9QyV74ji0ruqvf+zxSW2YwlNvuC6kD34j2n/aVk8bZjjKckA oW4PQpA11YvZLNMvGLWePsMtRLkqVDgtTrTPx33DGlUnGQsMFYcY9SBwPCoinwIu1e3lyJ 4ojZDc82YLbgOE/TiwDnAL8dJT+9IDk= Received: from mail-wm1-f72.google.com (mail-wm1-f72.google.com [209.85.128.72]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-155-gJXFHCGAObOnaPhT-NEhfA-1; Mon, 21 Jul 2025 04:05:30 -0400 X-MC-Unique: gJXFHCGAObOnaPhT-NEhfA-1 X-Mimecast-MFC-AGG-ID: gJXFHCGAObOnaPhT-NEhfA_1753085129 Received: by mail-wm1-f72.google.com with SMTP id 5b1f17b1804b1-43e9b0fd00cso23500425e9.0 for ; Mon, 21 Jul 2025 01:05:30 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1753085129; x=1753689929; h=content-transfer-encoding:in-reply-to:organization:autocrypt :content-language:from: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=YZwimYc/XbFaUcGJkln+p9HtaqBU8QoZiA7E2Ky46WU=; b=riNXNT8SLL+fs9e1FEajAPMYDgtAgxsn53porMahDcIhYf2CR88+QlhGT1Dfa+Tu1L jqdlsncnNS3yjF33h68X/I684qN2HHtEkFE7hQ045uv1Nqhk1Fpk981tDw/crCHoCT1H pCpxoUFfqc4H3BWkhkvS/RJBxNkIx3Zs2hkvDhimISz9GX1XW6kq4O2ClhWaW5WtpizH g+OXX/3Pqpe5gZw9z3t8spra58qt+5Liah6Fi2zYvSn1CL72mDkT+WKmELyphQJOZNQS ejyHTFlRlxXtXA9pF3jtCOb1PFr5XzrE3wyJ8ZKM44VWixRUBTstgCDirL0rPRBglyvu kidg== X-Forwarded-Encrypted: i=1; AJvYcCXxxkxSuv/wv3q7IbCE8NF/jrGJzw1DF9rr2gDK7YU/U52Xe+dsgOmGjqxYunuUYPgqztfQERhlEw==@kvack.org X-Gm-Message-State: AOJu0Yz3Su9znkzh5vAESlGLcTlqMcWNM2LuZSO/uFNhArCUowS6nbzo eklagwVXPDxx0uFv78j48mfc9Iy1v6KgjXeS73dfjA1f+EYxnbfd17Gjr1eEyIg8HULdG/0tf9V gS6g15HtDwzWM4gigTn9+WyGELOh3B3Pl954AJmvMrw87HWI7jpie X-Gm-Gg: ASbGnctYxnHRWy9gnemP1lqTk1ukcSZjg6CVfKCVpwqI+RR/joNlP1Eb6kR7YCFrMnT CuccVJnoN1MLgqmUQY+PSr3r2Vhb1c2cW8Vq9lGej6G89OyO+7yxwhwoL40eBUO3cT075sBXwd9 BMseunOknHBj1Hf3/sWa2IxLoA4eJQeNJxBusJ5/zKlLef5xiY28uNBR9TmJpk9GC1N5uDcvq1L HUbRzJoSfHCl1XPZgw6CA0rCIIm4BkvQCYZcpyl0HdDAaQXadUrVKnzcoHt4jrqSD/9Virprkhz BZ1+yMJf6P2/HV++SB6xWKuwcMEpGLBukGpK16GpQu1NMcvF4NoBxrd5a41BbGqLEKlR5vC9SKx BVHKvf3fZZoDUGVONPNEGXugX+IiT3m4LanDCcIW/OLzoNZqMompDhte84jN/s3Cd X-Received: by 2002:a05:600c:6610:b0:456:942:b162 with SMTP id 5b1f17b1804b1-45637bc1e8fmr147848795e9.11.1753085128975; Mon, 21 Jul 2025 01:05:28 -0700 (PDT) X-Google-Smtp-Source: AGHT+IEaqPaRa97Ws7y+SPufWF2ofN23cpKrkKJ1mE+QB0PaxxEWaWruM697N59u6maQfQXxXtGBSA== X-Received: by 2002:a05:600c:6610:b0:456:942:b162 with SMTP id 5b1f17b1804b1-45637bc1e8fmr147847785e9.11.1753085128261; Mon, 21 Jul 2025 01:05:28 -0700 (PDT) Received: from ?IPV6:2003:d8:2f4c:df00:a9f5:b75b:33c:a17f? (p200300d82f4cdf00a9f5b75b033ca17f.dip0.t-ipconnect.de. [2003:d8:2f4c:df00:a9f5:b75b:33c:a17f]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-45635fe6a92sm84696565e9.2.2025.07.21.01.05.26 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Mon, 21 Jul 2025 01:05:27 -0700 (PDT) Message-ID: Date: Mon, 21 Jul 2025 10:05:25 +0200 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH] mm, page_pool: introduce a new page type for page pool in page type To: Byungchul Park , linux-mm@kvack.org, netdev@vger.kernel.org Cc: linux-kernel@vger.kernel.org, kernel_team@skhynix.com, harry.yoo@oracle.com, ast@kernel.org, daniel@iogearbox.net, davem@davemloft.net, kuba@kernel.org, hawk@kernel.org, john.fastabend@gmail.com, sdf@fomichev.me, saeedm@nvidia.com, leon@kernel.org, tariqt@nvidia.com, mbloch@nvidia.com, andrew+netdev@lunn.ch, edumazet@google.com, pabeni@redhat.com, akpm@linux-foundation.org, lorenzo.stoakes@oracle.com, Liam.Howlett@oracle.com, vbabka@suse.cz, rppt@kernel.org, surenb@google.com, mhocko@suse.com, horms@kernel.org, jackmanb@google.com, hannes@cmpxchg.org, ziy@nvidia.com, ilias.apalodimas@linaro.org, willy@infradead.org, brauner@kernel.org, kas@kernel.org, yuzhao@google.com, usamaarif642@gmail.com, baolin.wang@linux.alibaba.com, almasrymina@google.com, toke@redhat.com, asml.silence@gmail.com, bpf@vger.kernel.org, linux-rdma@vger.kernel.org References: <20250721054903.39833-1-byungchul@sk.com> From: David Hildenbrand Autocrypt: addr=david@redhat.com; keydata= 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 g3eXuA== Organization: Red Hat In-Reply-To: <20250721054903.39833-1-byungchul@sk.com> X-Mimecast-Spam-Score: 0 X-Mimecast-MFC-PROC-ID: tO6BXiJuoLyS1I1r1TZI3w9gBzvxw0h53bOfWzIqmGM_1753085129 X-Mimecast-Originator: redhat.com Content-Language: en-US Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Rspam-User: X-Rspamd-Server: rspam05 X-Rspamd-Queue-Id: 9DC9512000E X-Stat-Signature: 8cnzf41k4t4mux49kuhmfmp4ct54fcss X-HE-Tag: 1753085132-104923 X-HE-Meta: U2FsdGVkX1/Cd24YpCvC37G+n1/Amhuc0W6VKfI49zza7vqTp2YE+7VAM3Xk4U+mSLGc2UF/1UdBtHVtCcKfMeSL/BHZPuK4G46nvZP+udCswzpgyH2gNoJ8VEN8xbfGyHa8VNmpXcBdm82ELf+ufRAepM2Hm2DNybbGV8YNRLID029luNL7kFGg5cUaEw/q9WGfXCIPqBQ5ZwzTjpAmCY1AR7422j8oeK8osIdo//JjNpNMeCPHlX5Sl/sv059tAVMJhCdVClrxD/8VUQ3mQkxpeE+QAGMv4a0mNR+X+cwM82FUYvwskTDyF5f0qfnHUN0alRuXwueenRMI/Zi1Q+el1yhYCfhDqQTf0Q1pV+BT5Q/yybv8J7AP8S9zZEBfR9V1DD00oQSEyGtqFqj3s6Q1oWQJHUWVNW5w29DVQ27mk/SATLcULKxIt1xA3Ceft2rJJdB772gco0esGWWSE608QtShN/lf3tXUS8KMCSZDUodyyXtlQgN2OLuX0ezOryDaqWGcV+2MPdZBoiBXHVvYtlUtnkyzCQIahwfha+DBhl8tgnhwtYSJk0fTyZ+8UtuCZIijzs9tZd11kdkhbIuRGjp+17MUG4vfdozxSI4KW3MG3ZMAvYaLqxAtKCbbO9zI5MCnx8nVYhT2gbYOix4i3xOiG5dNAWGvyn6mKPM06TzKVWkcIi1HMg/TVVz9C0Qx6xjbg/+tSopChdVOZJ3AhbsXodmjssufdLIWNIsVODEgbDGKTL2gQNBfbfcSzQ+bGlK+JpL8DrK2EJppjBXGMSQC4d9vS0Ut7qyv5ctdcMMADKcmROqLl75uRh5/nv68EPV5jmY7pL352Y766oRnjF/5QZa8w63/Y35lvbzeiu8Pe/HmwIB8YZDRmK4KtTn0I9SZaM1Kxa44Nk2LzvAZR6ZcmXfAKOWA0S6yWodZ8iLYGT7uGXAY5YBYEWi8Q9CC4WtNlnTjLlfCWSH ild2St7o nj7vKJWF5tsVBjABMkYRi9wX6dofJIhd/J6Hwy+xEgN3a0aNhaqyVPzx6wf3nd3USGNYrj9AGA4gbcLWs5oQBK8iVWv7d11zZIZvzALyW61SOWX3tonCj2z/8ol9wgmyEJq2LFt6Cp+XVGbeq3V64FaUW0TJDQMHf1IpAVO2Sp3qa2CMMu6BDwxHR/3BGRC/YjYp2+NNXW4g/5wuQt9zJgPnD4LkGfU9wGFA2nL6aTfNuF1Y= 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 21.07.25 07:49, Byungchul Park wrote: > Hi, > > I focused on converting the existing APIs accessing ->pp_magic field to > page type APIs. However, yes. Additional works would better be > considered on top like: > > 1. Adjust how to store and retrieve dma index. Maybe network guys > can work better on top. > > 2. Move the sanity check for page pool in mm/page_alloc.c to on free. > > Byungchul > > ---8<--- > From 7d207a1b3e9f4ff2a72f5b54b09e3ed0c4aaaca3 Mon Sep 17 00:00:00 2001 > From: Byungchul Park > Date: Mon, 21 Jul 2025 14:05:20 +0900 > Subject: [PATCH] mm, page_pool: introduce a new page type for page pool in page type > > ->pp_magic field in struct page is current used to identify if a page > belongs to a page pool. However, page type e.i. PGTY_netpp can be used > for that purpose. > > Use the page type APIs e.g. PageNetpp(), __SetPageNetpp(), and > __ClearPageNetpp() instead, and remove the existing APIs accessing > ->pp_magic e.g. page_pool_page_is_pp(), netmem_or_pp_magic(), and > netmem_clear_pp_magic() since they are totally replaced. > > This work was inspired by the following link by Pavel: > > [1] https://lore.kernel.org/all/582f41c0-2742-4400-9c81-0d46bf4e8314@gmail.com/ I'm, sure you saw my comment (including my earlier suggestion for using a page type), in particular around ... > --- > .../net/ethernet/mellanox/mlx5/core/en/xdp.c | 2 +- > include/linux/mm.h | 28 ++----------------- > include/linux/page-flags.h | 6 ++++ > include/net/netmem.h | 2 +- > mm/page_alloc.c | 4 +-- > net/core/netmem_priv.h | 16 ++--------- > net/core/page_pool.c | 10 +++++-- > 7 files changed, 24 insertions(+), 44 deletions(-) > > diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en/xdp.c b/drivers/net/ethernet/mellanox/mlx5/core/en/xdp.c > index 5d51600935a6..def274f5c1ca 100644 > --- a/drivers/net/ethernet/mellanox/mlx5/core/en/xdp.c > +++ b/drivers/net/ethernet/mellanox/mlx5/core/en/xdp.c > @@ -707,7 +707,7 @@ static void mlx5e_free_xdpsq_desc(struct mlx5e_xdpsq *sq, > xdpi = mlx5e_xdpi_fifo_pop(xdpi_fifo); > page = xdpi.page.page; > > - /* No need to check page_pool_page_is_pp() as we > + /* No need to check PageNetpp() as we > * know this is a page_pool page. > */ > page_pool_recycle_direct(pp_page_to_nmdesc(page)->pp, > diff --git a/include/linux/mm.h b/include/linux/mm.h > index ae50c1641bed..736061749535 100644 > --- a/include/linux/mm.h > +++ b/include/linux/mm.h > @@ -4135,10 +4135,9 @@ int arch_lock_shadow_stack_status(struct task_struct *t, unsigned long status); > * DMA mapping IDs for page_pool > * > * When DMA-mapping a page, page_pool allocates an ID (from an xarray) and > - * stashes it in the upper bits of page->pp_magic. We always want to be able to > - * unambiguously identify page pool pages (using page_pool_page_is_pp()). Non-PP > - * pages can have arbitrary kernel pointers stored in the same field as pp_magic > - * (since it overlaps with page->lru.next), so we must ensure that we cannot > + * stashes it in the upper bits of page->pp_magic. Non-PP pages can have > + * arbitrary kernel pointers stored in the same field as pp_magic (since > + * it overlaps with page->lru.next), so we must ensure that we cannot > * mistake a valid kernel pointer with any of the values we write into this > * field. > * > @@ -4168,25 +4167,4 @@ int arch_lock_shadow_stack_status(struct task_struct *t, unsigned long status); > > #define PP_DMA_INDEX_MASK GENMASK(PP_DMA_INDEX_BITS + PP_DMA_INDEX_SHIFT - 1, \ > PP_DMA_INDEX_SHIFT) > - > -/* Mask used for checking in page_pool_page_is_pp() below. page->pp_magic is > - * OR'ed with PP_SIGNATURE after the allocation in order to preserve bit 0 for > - * the head page of compound page and bit 1 for pfmemalloc page, as well as the > - * bits used for the DMA index. page_is_pfmemalloc() is checked in > - * __page_pool_put_page() to avoid recycling the pfmemalloc page. > - */ > -#define PP_MAGIC_MASK ~(PP_DMA_INDEX_MASK | 0x3UL) > - > -#ifdef CONFIG_PAGE_POOL > -static inline bool page_pool_page_is_pp(const struct page *page) > -{ > - return (page->pp_magic & PP_MAGIC_MASK) == PP_SIGNATURE; > -} > -#else > -static inline bool page_pool_page_is_pp(const struct page *page) > -{ > - return false; > -} > -#endif > - > #endif /* _LINUX_MM_H */ > diff --git a/include/linux/page-flags.h b/include/linux/page-flags.h > index 4fe5ee67535b..906ba7c9e372 100644 > --- a/include/linux/page-flags.h > +++ b/include/linux/page-flags.h > @@ -957,6 +957,7 @@ enum pagetype { > PGTY_zsmalloc = 0xf6, > PGTY_unaccepted = 0xf7, > PGTY_large_kmalloc = 0xf8, > + PGTY_netpp = 0xf9, > > PGTY_mapcount_underflow = 0xff > }; > @@ -1101,6 +1102,11 @@ PAGE_TYPE_OPS(Zsmalloc, zsmalloc, zsmalloc) > PAGE_TYPE_OPS(Unaccepted, unaccepted, unaccepted) > FOLIO_TYPE_OPS(large_kmalloc, large_kmalloc) > > +/* > + * Marks page_pool allocated pages. > + */ > +PAGE_TYPE_OPS(Netpp, netpp, netpp) > + > /** > * PageHuge - Determine if the page belongs to hugetlbfs > * @page: The page to test. > diff --git a/include/net/netmem.h b/include/net/netmem.h > index f7dacc9e75fd..3667334e16e7 100644 > --- a/include/net/netmem.h > +++ b/include/net/netmem.h > @@ -298,7 +298,7 @@ static inline struct net_iov *__netmem_clear_lsb(netmem_ref netmem) > */ > #define pp_page_to_nmdesc(p) \ > ({ \ > - DEBUG_NET_WARN_ON_ONCE(!page_pool_page_is_pp(p)); \ > + DEBUG_NET_WARN_ON_ONCE(!PageNetpp(p)); \ > __pp_page_to_nmdesc(p); \ > }) > > diff --git a/mm/page_alloc.c b/mm/page_alloc.c > index 2ef3c07266b3..71c7666e48a9 100644 > --- a/mm/page_alloc.c > +++ b/mm/page_alloc.c > @@ -898,7 +898,7 @@ static inline bool page_expected_state(struct page *page, > #ifdef CONFIG_MEMCG > page->memcg_data | > #endif > - page_pool_page_is_pp(page) | > + PageNetpp(page) | > (page->flags & check_flags))) > return false; > > @@ -925,7 +925,7 @@ static const char *page_bad_reason(struct page *page, unsigned long flags) > if (unlikely(page->memcg_data)) > bad_reason = "page still charged to cgroup"; > #endif > - if (unlikely(page_pool_page_is_pp(page))) > + if (unlikely(PageNetpp(page))) > bad_reason = "page_pool leak"; > return bad_reason; > } ^ this This will not work they way you want it once you rebase on top of linux-next, where we have (from mm/mm-stable) commit 2dfcd1608f3a96364f10de7fcfe28727c0292e5d Author: David Hildenbrand Date: Fri Jul 4 12:24:58 2025 +0200 mm/page_alloc: let page freeing clear any set page type I commented what to do already. -- Cheers, David / dhildenb