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 8E16DC5AE59 for ; Tue, 27 May 2025 01:31:27 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 29F8B6B0085; Mon, 26 May 2025 21:31:27 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 277176B0088; Mon, 26 May 2025 21:31:27 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 18D8D6B0089; Mon, 26 May 2025 21:31:27 -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 EE28D6B0085 for ; Mon, 26 May 2025 21:31:26 -0400 (EDT) Received: from smtpin26.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay07.hostedemail.com (Postfix) with ESMTP id 6B2F716156D for ; Tue, 27 May 2025 01:31:26 +0000 (UTC) X-FDA: 83486960172.26.2E8641C Received: from invmail4.hynix.com (exvmail4.hynix.com [166.125.252.92]) by imf24.hostedemail.com (Postfix) with ESMTP id EB0D218000C for ; Tue, 27 May 2025 01:31:23 +0000 (UTC) Authentication-Results: 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 ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1748309484; 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: in-reply-to:in-reply-to:references:references; bh=MYGz6UQdvxG92x3V1S8hbLC93Fwu9zUOVWb5+512cvE=; b=JyQzswLJYrFD1ReL1o4VatTJbOTKwWHf7ClR+1l7+qziZJlBhO0nzZ8GeILG10Ky/aGMsC e0l+WzKm42tUJhdP70X4ymn9TRRVNaE2hgQgqLuQYOQyOED690wwwLPRIeIhQlw3mNlkTn IWGoOLfoHxOBrssd97wimhGgS0I1UKM= 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 ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1748309484; a=rsa-sha256; cv=none; b=Trlc38NSZVUCfB5K/QxMlXYByzqGS4KZjlBv3G8xaE1avmTEs4f9hsJLMfZNK80hGsMIjJ 7L+ThMrEndjOvxOrDxUICz8oCh5NUC9V9uBgoez/LKFrJQxFg3iI3LVc9mTTehc2ibHmpL FKjbJmG0ZccUyld+uyGaAsJyWRfiJaU= X-AuditID: a67dfc5b-669ff7000002311f-dc-683515e91fbd Date: Tue, 27 May 2025 10:31:16 +0900 From: Byungchul Park To: Pavel Begunkov Cc: Mina Almasry , 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 Subject: Re: [PATCH 18/18] mm, netmem: remove the page pool members in struct page Message-ID: <20250527013116.GA37906@system.software.com> References: <20250523032609.16334-1-byungchul@sk.com> <20250523032609.16334-19-byungchul@sk.com> <20250526013744.GD74632@system.software.com> <20250527010226.GA19906@system.software.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20250527010226.GA19906@system.software.com> User-Agent: Mutt/1.9.4 (2018-02-28) X-Brightmail-Tracker: H4sIAAAAAAAAA02SfUzMcRzHfX/PHWdfh3w9jDkzW1YeVvNB0sbmN6OhZsOGW/3W3XQnV1Ia OzQPTQnN6hy7hh5OHCfXSaITMm2uQ64HHaXGlKe49WDFjxn/vfd6vz/vz+ePj0CrjrFTBJ0h VTIaNElqTsEoescUhb6fGKGdX5u3GCz2cg4u96dDyWsXCxabE8G3gVYe+uoecXChKECD5WkW A9/tgzR0PezgwV/czUD1kUoaOk7Uc5CTNUTDQVcpBR5nLgv5g5doqDS95uFZlYWD9vIRFrrd OQw8Npcx4M+NhofWYAg86UFQZ6+kIHD8HAenvVYOOrP8CLz3Oxg4eyAXgb3Gx8JQv4WLnilW lDVT4i3zK160OnaLN0pDxGyflxYdtmOc6Ph6ihfbmqo5sb5giBFvufooMefQR0780tXCiJ9q XnCiveIFIzZY63ixzzF9Hd6siEyQknRpknFe1HaF1tv1jk8+ODa9p6WVM6ECRTYKEggOJx6T g/6rXfmNKBsJAoNnk6rueBlzeA7x+QZ+RybgueTDSzefjRQCjXtYYj/iZGRjPI4jz98U8vKs EgN52TlJxipcRZGTz1bLWonHkceFb3/HaRxCfMPvKTlO46mkZFiQcRBeTPxfrlGynohnkXvO R5S8iuAygdy2nWP/nDmZ1Jb6mDyEzf/Vmv+rNf+rtSLahlQ6Q5peo0sKD9NmGHTpYfE79Q70 60GK9/3Y4kJfPbFuhAWkHqP0SOFaFatJS8nQuxERaPUEpTPvF1ImaDL2Ssad24y7k6QUN5oq MOpJyoWBPQkqnKhJlXZIUrJk/OtSQtAUE8rt71iUHHq1qLOeWw8bYjwRnRvHVZx5Hhdt6L9T aDilDH41eobfuSTqYtPdFdfDE1d1bz0/EvM5ZAE3LWxtvu16cGZ7E7MrbfNN7/5lzcMx+uTY 4Ss7apT32xoyFx1tPTr28Nrm6KVsVuiam/wWZk3jHp4Ki2wctSnSsfxBIK7h7cpeNZOi1SwI oY0pmp98m5tjHAMAAA== X-Brightmail-Tracker: H4sIAAAAAAAAA02Sa0hTYRzGe885O+e4nLya1sGCYt01rcjqH4pYBL34IRICTSJdemijeWkz 06AwlURT06zQtWIlZS5jsWROEaklXkjQNGtlNdPUiVLZxWqa1gmivj38nuf37eFpv0kmkNek Zoi6VJVWycoZ+d7wvJDxgK3qTZWzQWC01LFw53sW1AzaZWA02xB8+THAwefWdhaqr0/TYOzO Z+CrxUPDSNsQB65boww0FzTQMHS+g4WS/Bkacu23KXh0tVMGPbZSGVz03KShIWeQg74mIwtv 6uZlMOooYaDTUMuAqzQK2kyLYfrxJIJWSwMF08VXWajoNbEwnO9C0PtoiIErZ0oRWFqcMpj5 bmSjlKS+9gVFGg2vOWKyHif3bweRImcvTazmQpZYP13gyKtnzSzpqJxhSKP9M0VK8t6zZGrk JUM+tPSzpNr9kSKW+n6GdJlauX2+8fKIZFGryRR1GyMT5ereETeXnuuTNflygM1BlfIi5MUL OEywX3yCihDPM3i10DSaJGEWrxWczh+0lP1xsDDx3MEVITlP40mZYCmwMVKxCO8Xnr6t4iRX gUF4PrxEwn64iRLK+6KlrMC+QmfVuz9zGgcJzrlxSprTeKlQM8dL2AvvEFxT9ygpB+CVwgNb O1WGFIb/bMN/tuGfbUK0GflrUjNTVBrt1lD9UXV2qiYrNCktxYp+f+DWqdlyO/rSt8eBMI+U 3ooeMUztJ1Nl6rNTHEjgaaW/wlb2GymSVdknRV1agu64VtQ70FKeUS5RRMeKiX74iCpDPCqK 6aLub0vxXoE5qLu9Yx0T820ivC0mPinMa316hPemhws+1B4ez9f3b/vp9ozvOqZNDunJqVm+ /dyaWX/vhupY7PmadmPKThIix2Kjg6sqggfVyV3vWqoPHpk3R3iu+caNXfZ5srtwC05bZU+w 3l3sCkiRxw2c3nCoeNlY+E732UsrWFn9AfeJXJ+JhUpGr1ZtDqJ1etUvF08Tpf8CAAA= X-CFilter-Loop: Reflected X-Stat-Signature: 1381ce9sae4h31jw5otqojtbfb5afa1s X-Rspamd-Queue-Id: EB0D218000C X-Rspam-User: X-Rspamd-Server: rspam02 X-HE-Tag: 1748309483-583672 X-HE-Meta: U2FsdGVkX18UXCpbSstgAr8aoK3x+B/YBvY1CbxuDtcBbDi6uFThxe8i2kqL3q/HsLzhYjgnXQdIubd5R42f/ehXQ+GxE3Tj3RNRNYzbpd6ObCCwxwC/WRpeQzX6seCvIDQ+girAIaFgYuNLrlc7LXB+j5Z5VYHVd4eSFl68ADqTOsmxM4Uy4GJMYoqRns3IbR29YItoEMWKmcpPVdNOg9jqFeiieixH8bPqINfDIQJOTlyG4OM0acpIary0dV0HUtX7EwVrUY4jf5nXzhmarpSGxS0AYWiBzafV+vZZ9eOTaPjsJQlxI2w+pcONwlG8I3ktHjm1SyOXLOmEvTSTwzPzb/BuXRRc1TugZcEDyV+SS5kIV9RVoF3AerrYpO9/4IEkWrIu1wisuBaxBiZDDgO5ZXqecUu5sPPP9XQ10SKbm5GCJQD9V3Q8aHE7UJyGhCeAsSWqC5JEKmEWxTGJwv8KT4QZVEdvU0cU9d9QSynbgMJUXvvniPUxwQDvvlJAKALSFFJLDpmhocehmn0YLDsB0O059lJG4b6f9j49SM4S3StX/KNC9lCgnw0MAs5NXeDeRVRGbClM1cFHjQKP4L/7OM/i/Z/b037/oZWKW81I/O+NKZCgUsoGAvVDr+CSgUwB8NMJhjYSsdFVO/LfO6B8SoAsjbMoVmcjgFxbSS1LiMIb2u4jGYYIGXK/EubR7pVcS1UEI9rn//QumQj/KxAJntnLQqgED6feVGFF3keo4kJwKFT1rWUgUUPsuKpeVW+ci4QzLnI9k7OVHUFT2qH1XGI1YAcudRutb0JILr9DzhikezZnKqZUYrkCOmCCvlrfueDONlIg7Dbkju56Rea3qB2LZ0EANLwp1TB1QE/TJpEi/s5VSA94YKT25M2Du4obhIrEE8PVG28FMrOx84qAoR9aFzmJt48BdV695G1/33ktO01md3iBquPENkD2pPmV3oDG40Af9A+lvGG Ob+R2ZnG y1asqa+LDu0uMe6hIMHIgSg1jZQ== 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 Tue, May 27, 2025 at 10:02:26AM +0900, Byungchul Park wrote: > On Mon, May 26, 2025 at 05:58:10PM +0100, Pavel Begunkov wrote: > > struct net_iov { > > unsigned long flags_padding; > > union { > > struct { > > // same layout as in page + build asserts; > > ... > > struct page_pool *pp; > > ... > > }; > > struct netmem_desc desc; > > }; > > }; > > > > struct netmem_desc *page_to_netmem_desc(struct page *page) > > { > > return &page->netmem_desc; > > page will not have any netmem things in it after this, that matters. ^ this patch series Byungchul > > > } > > > > struct netmem_desc *netmem_to_desc(netmem_t netmem) > > { > > if (netmem_is_page(netmem)) > > return page_to_netmem_desc(netmem_to_page(netmem); > > return &netmem_to_niov(netmem)->desc; > > } > > > > The compiler should be able to optimise the branch in netmem_to_desc(), > > but we might need to help it a bit. > > > > > > Then, patch 2 ... N convert page pool and everyone else accessing > > those page fields directly to netmem_to_desc / etc. > > > > And the final patch replaces the struct group in the page with a > > new field: > > > > struct netmem_desc { > > struct page_pool *pp; > > ... > > }; > > > > struct page { > > unsigned long flags_padding; > > union { > > struct netmem_desc desc; > ^ > should be gone. > > Byungchul > > ... > > }; > > }; > > > > net_iov will drop its union in a later series to avoid conflicts. > > > > btw, I don't think you need to convert page pool to netmem for this > > to happen, so that can be done in a separate unrelated series. It's > > 18 patches, and netdev usually requires it to be no more than 15. > > > > -- > > Pavel Begunkov