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 32C0EC3ABBC for ; Fri, 9 May 2025 18:11:53 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 307D16B00CD; Fri, 9 May 2025 14:11:51 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 2B4C56B00CE; Fri, 9 May 2025 14:11:51 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 1A4966B00CF; Fri, 9 May 2025 14:11:51 -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 F10046B00CD for ; Fri, 9 May 2025 14:11:50 -0400 (EDT) Received: from smtpin07.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay06.hostedemail.com (Postfix) with ESMTP id B8C21BE519 for ; Fri, 9 May 2025 18:11:51 +0000 (UTC) X-FDA: 83424162822.07.6181812 Received: from casper.infradead.org (casper.infradead.org [90.155.50.34]) by imf17.hostedemail.com (Postfix) with ESMTP id EB17940009 for ; Fri, 9 May 2025 18:11:49 +0000 (UTC) Authentication-Results: imf17.hostedemail.com; dkim=pass header.d=infradead.org header.s=casper.20170209 header.b=tPjzhc3v; dmarc=none; spf=none (imf17.hostedemail.com: domain of willy@infradead.org has no SPF policy when checking 90.155.50.34) smtp.mailfrom=willy@infradead.org ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1746814310; a=rsa-sha256; cv=none; b=8deT/tXQD8QRcyIq+M6DuefVt7qWqKUz008DD8ADJuNZDkb1Njz19HwSCUAqWYGXWqwhSo lf2I1X3X16ksshNHT8XG1O9jR9L9L6AmyRif/8OQ3hiR7R/GPlQXU3pyGK6pBrhygFKuvK NBoAGeBjLUvFOjPPyAOIPJrU2GetzVw= ARC-Authentication-Results: i=1; imf17.hostedemail.com; dkim=pass header.d=infradead.org header.s=casper.20170209 header.b=tPjzhc3v; dmarc=none; spf=none (imf17.hostedemail.com: domain of willy@infradead.org has no SPF policy when checking 90.155.50.34) smtp.mailfrom=willy@infradead.org ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1746814310; 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:dkim-signature; bh=cspF8g0wB1UfIi4VlU1VP1raE/nG2FyTs+KY08D+XqM=; b=dow6tbtx9pxIQJWV8h+ei4GxrO0MO/Pa2IZxcKJsHu77bXoKWEHzSFuvqAbVBU9+IFZmxZ wRJznV2hoR1nOuST16ouiAxrcjrk2tBkNBCkEcdrpu25EB0KflfFT5L2zS2QOTuX+LoH7c loBMGa9p57GceZqLgghvr7GzRVcbueU= DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=casper.20170209; h=In-Reply-To:Content-Type:MIME-Version: References:Message-ID:Subject:Cc:To:From:Date:Sender:Reply-To: Content-Transfer-Encoding:Content-ID:Content-Description; bh=cspF8g0wB1UfIi4VlU1VP1raE/nG2FyTs+KY08D+XqM=; b=tPjzhc3vcRS833mSbFJ+ZdUcBj quuCPKO2GsiEeiReDRqPkHH3MczAQ2wRkTiz/ISzztl9+He02NXoUep5QIlmlV6kyaSSVc48dKFTE RLzuvGsm/yyHS9rWKYq0uAgbArYBhgFQQ3Ba5hUrZytSdEll0JwdmoKe9R2SYLGTkTDhANdC0wbel 4SzR7A+aYQGPVaviUcxbFtah9arShgkhPvDg4u4bzbAPQ6Ocvh+8kLYfWODUmge8S1nWpgr6lYf/+ kMIR6YcQ865znEVuhyv9etq48FnNN99PrHYVYEEQiPxu50X/DrXtF6E6RZ0KtqYh1sjH2Ez7zwOwd /2vUh6dg==; Received: from willy by casper.infradead.org with local (Exim 4.98.2 #2 (Red Hat Linux)) id 1uDSC0-0000000DqAm-35Gg; Fri, 09 May 2025 18:11:28 +0000 Date: Fri, 9 May 2025 19:11:28 +0100 From: Matthew Wilcox To: Mina Almasry Cc: Byungchul Park , 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, ast@kernel.org, daniel@iogearbox.net, davem@davemloft.net, john.fastabend@gmail.com, andrew+netdev@lunn.ch, edumazet@google.com, pabeni@redhat.com, vishal.moola@gmail.com Subject: Re: [RFC 19/19] mm, netmem: remove the page pool members in struct page Message-ID: References: <20250509115126.63190-1-byungchul@sk.com> <20250509115126.63190-20-byungchul@sk.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: X-Rspam-User: X-Rspamd-Queue-Id: EB17940009 X-Rspamd-Server: rspam04 X-Stat-Signature: qaw6r8t36w768hgrmd5d6qapwp6epa7q X-HE-Tag: 1746814309-613953 X-HE-Meta: U2FsdGVkX19IoJkU/KON4ymw0OZwmwuYSF+wokyZ9FWct9zlfoW2nH5GNnVzq0VRr2GyyYtnNpz/Bbjx2BXhS84sxo0bPRY+jqUtvk4bVt7t2f3De5BLOed/OprRKRcx1JvEI6CCjdtUOeidETMDJafzUoQOLCwlZc0jvquv1T8l64Lwp4VPU7UnkgT3Iw11Dq+M1PtBpiu0W3cGxgrgRujKSQUUA0USSQ5XAdh+QVCmJdKqCmj9FP8XO/lVZnrH/Pn2zhYiOZerkt5GMenf9rQo+BPS75h7PbaNjww/HzfDlUkrYRBhz2zwPr8pzSXruXTgZx0wRki3WM00qa75OP1dVZlyK5ZudiM2vt3pxJUYxKoDLn8RoW2vUmvWi+b+zG1B4uFWePQrYPfS7p7AhFsFVldvBBD8+KH5L0OTGIRpLgrlHlWz9m8gT+q6RfYZQJ+Qttp/L3JYLvy7oDyMxVGcAFHc3ZMiZFmObbdeh9RCT1PwwVqGXghvdph4K2RS6OfU0QpDP7ZQQQAoX0WdUG9KB+GH2xHhYzXZcAS0P22PKqMpf+63TwmqntQt/5EomkMylwSMllHeOfwzYYCkhhRiBUBOxNoR22D0oB0Prq+kkaliSy9fHkz4leOHuQ8GYZqNeucDoA+sYkaOKBikYJkxyi50FPVjLZ44nbNeW3+TUzS/HEPi1ILkpx8LM9bGVjBSqV5OGr7cta0KwOBxNKzqA/SH6+2nMgc5p2wENlphhlrocm6NUmZ3OBGTI91molvVq3hmM4M38NZqdmsGBhPnMIAlEy/AmaztReuj1Ms2J5p1yYt8ZzE5z612FPmnoQVOoQOp0Gw1pzJ0azLNc9NSHTkAG6HNLTxvjsw8S0pfOq9DIkz5Ss4ahL0w+nAq7zNs9AbwPFpoG4PJKuO+hGk2vh6MggBTEoX5RFeGZx9SxuiX+1BxGvE2oBng7UBhhbCe/x/+sqewdOsTOzv 80Vie7rc 94svlt+rJwPbBwbs= 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 Fri, May 09, 2025 at 10:32:08AM -0700, Mina Almasry wrote: > Currently the only restriction on net_iov is that some of its fields > need to be cache aligned with some of the fields of struct page, but Cache aligned? Do you mean alias (ie be at the same offset)? > What I would suggest here is, roughly: > > 1. Add a new struct: > > struct netmem_desc { > unsigned long pp_magic; > struct page_pool *pp; > unsigned long _pp_mapping_pad; > unsigned long dma_addr; > atomic_long_t pp_ref_count; > }; > > 2. Then update struct page to include this entry instead of the definitions: > > struct page { > ... > struct netmem_desc place_holder_1; /* for page pool */ > ... > } No, the point is to move these fields out of struct page entirely. At some point (probably this year), we'll actually kmalloc the netmem_desc (and shrink struct page), but for now, it'll overlap the other fields in struct page. > 3. And update struct net_iov to also include netmem_desc: > > struct net_iov { > struct netmem_desc desc; > struct net_iov_area *owner; > /* More net_iov specific fields in the future */ > }; > > And drop patch 1 which does a rename. > > Essentially netmem_desc can be an encapsulation of the shared fields > between struct page and struct net_iov. That is not the goal.