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 34D74C83F1A for ; Fri, 11 Jul 2025 00:42:22 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 7F2376B009B; Thu, 10 Jul 2025 20:42:20 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 785C06B00A0; Thu, 10 Jul 2025 20:42:20 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 53C396B009D; Thu, 10 Jul 2025 20:42:20 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0010.hostedemail.com [216.40.44.10]) by kanga.kvack.org (Postfix) with ESMTP id 39AC46B009A for ; Thu, 10 Jul 2025 20:42:20 -0400 (EDT) Received: from smtpin19.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay10.hostedemail.com (Postfix) with ESMTP id 7840BC0DB5 for ; Fri, 11 Jul 2025 00:42:19 +0000 (UTC) X-FDA: 83650132398.19.986BA9E Received: from invmail4.hynix.com (exvmail4.hynix.com [166.125.252.92]) by imf24.hostedemail.com (Postfix) with ESMTP id C6040180008 for ; Fri, 11 Jul 2025 00:42:16 +0000 (UTC) Authentication-Results: imf24.hostedemail.com; spf=pass (imf24.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=1752194537; 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=LaDVb+eIToy/ZfmdRxtxMt4tHm03UWOEXpG1KKJIU1Y=; b=h9NOPJ4ZiE43DNQKeyMb1z2b3bxvdOnNaVHISzrBY4HThq9Vjai6hUGUQalPBRPW3LSfli ITp4rrOk33RqzEsxXVGybA40GS9z8mvnUr/ljly+st1OS143EOJPc/W+PUJ6fNQA0wbbp/ Qn2xZEWm1FWxF0mC0vhCxRw3rIm4m+c= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1752194537; a=rsa-sha256; cv=none; b=7bjn5cU/zMU1CoBZECwIdTTn/Z1aWMVdat90yRUaH7kRA7BJRTpspotMLV2oKaGVMYhPrN rTrDSvIMimzBT1iiIkEd1JC3s8DS7VOpFBGTO1mkYztPgQS1rZpPf7PfpkXmiSjHkjDuVG p6OHQggRDW2Ody8ODMSoXbkktPcOqOc= ARC-Authentication-Results: i=1; imf24.hostedemail.com; dkim=none; dmarc=none; spf=pass (imf24.hostedemail.com: domain of byungchul@sk.com designates 166.125.252.92 as permitted sender) smtp.mailfrom=byungchul@sk.com X-AuditID: a67dfc5b-669ff7000002311f-a5-68705de5e4c6 Date: Fri, 11 Jul 2025 09:42:08 +0900 From: Byungchul Park To: 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, 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, hannes@cmpxchg.org, ziy@nvidia.com, jackmanb@google.com Subject: Re: [PATCH net-next v9 0/8] Split netmem from struct page Message-ID: <20250711004208.GA40145@system.software.com> References: <20250710082807.27402-1-byungchul@sk.com> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: User-Agent: Mutt/1.9.4 (2018-02-28) X-Brightmail-Tracker: H4sIAAAAAAAAA02Sa0jTYRTGefe/Ohr8Xbc3DYp1w65WRudDhQXB+8XQ/FB0s5F/22hOm7pU TMyMaKbdlHRabFpuqbRaXqaZlFlqGuXKXJkZSweRGeWlTLs4JfLbc57z8PzOh8NT8tuMH6/W xos6rVKjYKW09PMM8yrP/lhVYFMlA4W2chbKfiSC5b1jYiqtQjA02sXBYGMTC8XmEQoKn2XQ MGz7SUHfYzcHZfYQ6Cnx0FB3upoC97lmFrIyxii4NzrAQbrDKoHnVdkM5Py8TkF12nsOXtQW svCu/A8DnoYsGlqMN2joyQ6Gx6Y5MNLaj6DRVi2BkbNXWLjkNLHwIaMHgfOhm4aCE9kIbPUu BsZ+THQUPHrHBS8mD/u/UKTixmsJqTF2c8RkTyB3rMuJweWkiL30DEvs3y5y5O2rOpY0543R pMYxKCFZJwdY8rXvDU2+1HewxFbRQZM2UyMX6rtHuilS1Kj1om7NloNSlbkph4ntX5hoqbtD p6GauQbkw2MhCPfe6mD/6bKqj8iAeJ4WluDs0we8Nisswy7XKOXVs4QAfK3+AmNAUp4SjCzu qHXT3sVMYRvO/9Q5GZIJgLvbLZxXy4UU7Ll2nZnyfXFLfu9knpooHb/qpLwsSvDHlt/8lL0A n6wsmKzxEcJwbe74ZHy2sAjfr2qSeLlYaOZxp/MSN3XzPPzA6qLPI1/jNIRxGsL4H2GchjAh uhTJ1Vp9tFKtCVqtStKqE1cfiom2o4lHKjk+vteBvj0Pb0ACjxQzZMFlMSo5o9THJUU3IMxT ilmymyGxKrksUpmULOpiInQJGjGuAfnztGKubN3IsUi5cFgZLx4RxVhR928r4X380lBm6t6D zZuPWlOHksS+9Znm222elVmXT2zVRX1wa5eGMclRh7QRna9nf0/fUBnvKFDtVhTxO8jdUxu3 K3fdxCXqiieBeUXDetu5t7769p37UvEzeOMXnpAJUZUpwzMtmq7W/tJbIej8irCAwxFuq9nw 9GVvhulXqD2omNuaOz9aQceplGuXU7o45V+UuleFRAMAAA== X-Brightmail-Tracker: H4sIAAAAAAAAA02Sa0iTYRiGefcdXa2+luWLFsZCRCErSHqgCDtQH0WRfzqSOfKjzdyUTU2j SJsmrZxadnAeMs9OcTLNU2qiK5OgcrE0ywOmUmSaWaJOLGdE/ru574vr+fOwhPQO5c4q1ZGC Ri0Pk9FiUnxkh27T8JkIxZanVj/IMpfTUDYdA8UDdRRkmWoQ/Jz5wMCktZ2G/EdTBGS9TiDh l3mWgOHngwyUWQ5Df9EICY1JtQQMprygITnBQUDTzBgD1+pKRNCW3UHBmxoDBemzhQTUxg0w 8LYhi4a+8t8UjLQmk9BhLCWh3xAAz3PXwtTLUQRWc60Ipm5l03DHlkvDp4R+BLa2QRIy4w0I zM3dFDimFxyZz/qYAC++bXSc4KtL34v4emMvw+daoviqEl9e320jeIvpBs1bftxm+I/vGmn+ xQMHydfXTYr4ZN0YzU8M95D8eLOd5vM/fxfx5mo7eVR6SrwzRAhTRguazbuCxYpH7elUxOiG mOLGKjIO1bvpkQuLuW24rOYL0iOWJTkvbEgKctY05427u2cIZ3blfHBBcxqlR2KW4Iw0tjcM ks5hNbcHZ3ztWoQkHODezmLGmaXcZTxSUEj97VfhjoyhRZ5YkM7l2AjnLYLzwMXz7N/aE+se Zy5qXLhA3HB3bhFfw23ELTXtolS0wrjEZFxiMv43GZeYchFpQq5KdbRKrgzz99NeUMSqlTF+ 58JVFrTwKkVX5tLq0M+3B1oRxyLZcklAWbhCSsmjtbGqVoRZQuYqqTgcoZBKQuSxlwRN+FlN VJigbUUeLClzkxw8LgRLufPySOGCIEQImn+riHVxj0Om3q7OipWp/oFMUZru4lB03lBTetXr 68nHrPaJ6RzHsup1haYTqpX7HAa1Zj6lqGq9refJQKK1NFQ/sTcQ++fZxo5P3K9sdlvuftKz c/er4P0uswdP15eHx5e76SQ3r4ZaMkbvjVe+8f700L5TkdjHVW/XDbQEfQs9pPdV4RYfm4zU KuRbfQmNVv4H/fhXyyYDAAA= X-CFilter-Loop: Reflected X-Rspamd-Queue-Id: C6040180008 X-Stat-Signature: peybmks6soby6eyb48eorzkuhnorfkzk X-Rspam-User: X-Rspamd-Server: rspam06 X-HE-Tag: 1752194536-513795 X-HE-Meta: U2FsdGVkX1+YYn4pXp20tmC2O7O7QyxWyPl25xE9ApX0asyd9H4e9qlExOUmQdRzhoSeZytj0ACiEiMSi/T3YA+7kAduHy0vximHpdjDQouz1jZHg7OpBzAEvE6hKNaj3EPMRlULTNZqerNI9RibiqfZiHt7QaK1bHMSQrPfVKg1AfESiRbN/Xaf8fK1o7dThfZ2Nc6CXvGM2dap+diZulCH82nm2hh7cHtC2hWFskSX1434VStKd7Hnyn1KwuK/fTxeMytVBynhCQsCxKfS6HbsB+4aMyRFAi6gSvm7Ps9WpPLldAZJlx1I0MSPZTDgmdahgQXXbJFw/3ZTIlLWeBMy0tvMIiDpIGH2S8YjfIf4iY4uqtzEakz4aCm9a2Y/kv+bx+JqVrhbyBo7LH2xbFe4OKEpVd9q/GhwiiNfpGTJsOy0XTum7WmvaoQbaC4kEMTfpPPvXPSgK4b1I1Xns2NLAzckSemXPeT4IgnQN84n6maobdZqtlV1IHf5OYmYRyGdu99k0OtrMml6lj20s99bfk0zrG3sn3WlYD1CFBmi8jZsLIskDHz3GnQ0DqHw9eZIHENrMBRKLGdlZ1KXnoqZFpW+pY4JqVph3pZ0uphpjvD113vzX8INF+YghAWpf+Gv5RikzBVscW/qy/OkB29NlWFMCA6ojA7rDZHNoomO6JFBbxA6SIc3WPiwQrSMR0KQmt0BgXqC/R7M4Y8CtNtNX7VAEe0G6e1ZDl1BmPrl3KYQiNCS4/ZvksFH1kyCkgfrtSArVGfkvYN/pvdz9SDDi2Sp28yiFrvdcb0NEVJMJIICWE9oUBPHJwbDnhfRsw29pg6ZVG8uY8T95JbTDd6CimclIKUviolwz/MbPArtcVlakyXYATrnlQM0OzqcXQY1QEtU4/1rSrFJMSmb7b0FFtP8WHyCmijUTh8aT+5VoaGWzM4WuCvpStvmeyTv0rAumICbN7jsDyAUI7V d4zw2PDy w4sgl/SuqkftLdEkBRQV+yM72LBKfqSQclPE1pne0H8yW6Na1Vj3uST7nMV1lquZ//qYx/FYXRahLCShHlEJifvU7aD5ME0Ue7aThoGFWYZ3zm5LYOTMJnPYvxsXbaMw4dHLHphPfUZuyWyn/5bOX0knYJ7GWNMrE5AZ6Dz2ck0wjOD1P565gGFxym9KFzNkbFLaoTqrPtGyxQLyozOWGPoYijxzxxa5eKsn3Ip9Pr9MrOK9rxKnS74Cg+JyfWmSJDYXu 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 Thu, Jul 10, 2025 at 11:35:33AM -0700, Mina Almasry wrote: > On Thu, Jul 10, 2025 at 1:28 AM Byungchul Park wrote: > > > > Hi all, > > > > The MM subsystem is trying to reduce struct page to a single pointer. > > See the following link for your information: > > > > https://kernelnewbies.org/MatthewWilcox/Memdescs/Path > > > > The first step towards that is splitting struct page by its individual > > users, as has already been done with folio and slab. This patchset does > > that for page pool. > > > > Matthew Wilcox tried and stopped the same work, you can see in: > > > > https://lore.kernel.org/linux-mm/20230111042214.907030-1-willy@infradead.org/ > > > > I focused on removing the page pool members in struct page this time, > > not moving the allocation code of page pool from net to mm. It can be > > done later if needed. > > > > The final patch removing the page pool fields will be posted once all > > the converting of page to netmem are done: > > > > 1. converting use of the pp fields in struct page in prueth_swdata. > > 2. converting use of the pp fields in struct page in freescale driver. > > > > For our discussion, I'm sharing what the final patch looks like, in this > > cover letter. > > > > Byungchul > > --8<-- > > commit 1847d9890f798456b21ccb27aac7545303048492 > > Author: Byungchul Park > > Date: Wed May 28 20:44:55 2025 +0900 > > > > mm, netmem: remove the page pool members in struct page > > > > Now that all the users of the page pool members in struct page have been > > gone, the members can be removed from struct page. > > > > However, since struct netmem_desc still uses the space in struct page, > > the important offsets should be checked properly, until struct > > netmem_desc has its own instance from slab. > > > > Remove the page pool members in struct page and modify static checkers > > for the offsets. > > > > Signed-off-by: Byungchul Park > > > > diff --git a/include/linux/mm_types.h b/include/linux/mm_types.h > > index 32ba5126e221..db2fe0d0ebbf 100644 > > --- a/include/linux/mm_types.h > > +++ b/include/linux/mm_types.h > > @@ -120,17 +120,6 @@ struct page { > > */ > > unsigned long private; > > }; > > - struct { /* page_pool used by netstack */ > > - /** > > - * @pp_magic: magic value to avoid recycling non > > - * page_pool allocated pages. > > - */ > > - unsigned long pp_magic; > > - struct page_pool *pp; > > - unsigned long _pp_mapping_pad; > > - unsigned long dma_addr; > > - atomic_long_t pp_ref_count; > > - }; > > struct { /* Tail pages of compound page */ > > unsigned long compound_head; /* Bit zero is set */ > > }; > > diff --git a/include/net/netmem.h b/include/net/netmem.h > > index 8f354ae7d5c3..3414f184d018 100644 > > --- a/include/net/netmem.h > > +++ b/include/net/netmem.h > > @@ -42,11 +42,8 @@ struct netmem_desc { > > static_assert(offsetof(struct page, pg) == \ > > offsetof(struct netmem_desc, desc)) > > NETMEM_DESC_ASSERT_OFFSET(flags, _flags); > > -NETMEM_DESC_ASSERT_OFFSET(pp_magic, pp_magic); > > -NETMEM_DESC_ASSERT_OFFSET(pp, pp); > > -NETMEM_DESC_ASSERT_OFFSET(_pp_mapping_pad, _pp_mapping_pad); > > -NETMEM_DESC_ASSERT_OFFSET(dma_addr, dma_addr); > > -NETMEM_DESC_ASSERT_OFFSET(pp_ref_count, pp_ref_count); > > +NETMEM_DESC_ASSERT_OFFSET(lru, pp_magic); > > +NETMEM_DESC_ASSERT_OFFSET(mapping, _pp_mapping_pad); > > #undef NETMEM_DESC_ASSERT_OFFSET > > > > /* > > > Can you remove the above patch/diff from the cover letter? I added the diff for those who might get lost due to the lack of the final patch. However, sure, I will remove it. Byungchul > -- > Thanks, > Mina