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 3E7CEC369AB for ; Tue, 15 Apr 2025 15:40:05 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id E9CC4280020; Tue, 15 Apr 2025 11:40:02 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id E4AF328001C; Tue, 15 Apr 2025 11:40:02 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id D3B01280020; Tue, 15 Apr 2025 11:40:02 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0014.hostedemail.com [216.40.44.14]) by kanga.kvack.org (Postfix) with ESMTP id B528128001C for ; Tue, 15 Apr 2025 11:40:02 -0400 (EDT) Received: from smtpin25.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay05.hostedemail.com (Postfix) with ESMTP id 8F86F5BF3C for ; Tue, 15 Apr 2025 15:40:03 +0000 (UTC) X-FDA: 83336689086.25.B6CEEE6 Received: from mail-pl1-f174.google.com (mail-pl1-f174.google.com [209.85.214.174]) by imf21.hostedemail.com (Postfix) with ESMTP id AC40D1C0010 for ; Tue, 15 Apr 2025 15:40:01 +0000 (UTC) Authentication-Results: imf21.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=2+ZfnOmE; spf=pass (imf21.hostedemail.com: domain of almasrymina@google.com designates 209.85.214.174 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=1744731601; 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=OeIb/X6LUJd0puJOYgEpsyhyK4cnQAwP4cBidqFaUFw=; b=6XOGFYI2v5Eng8mTU9lzHdIU457fBQ6z1tXw6Yy/bfqEszBXdX195pELJgaihxtVNBQpKO U+a1jXBFINS0upKiTiSzUu0NFnJQR4OcZ3MJrlBDy7OK2YXrceTYpTVIwhhYCv/i62G530 XxqELw9yT7mX9mgEJhoQn/7ltGS8MX0= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1744731601; a=rsa-sha256; cv=none; b=TmqOyJ0caSPMngxnHwVX1Iko+AdW+/qpladhDR7K3U307FtAVt11J3jrUveWK2bvyUzF+O U88jDX0v7MIcQR/1t9AsyAc+x9B4i5vn/UTeSq513rGLYjnUOC+HmRpyekpAWwJOA5D3aW bEXaNURGcvnIvHB/ORJtLwtGA4xwPp4= ARC-Authentication-Results: i=1; imf21.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=2+ZfnOmE; spf=pass (imf21.hostedemail.com: domain of almasrymina@google.com designates 209.85.214.174 as permitted sender) smtp.mailfrom=almasrymina@google.com; dmarc=pass (policy=reject) header.from=google.com Received: by mail-pl1-f174.google.com with SMTP id d9443c01a7336-2242ac37caeso160375ad.1 for ; Tue, 15 Apr 2025 08:40:01 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1744731600; x=1745336400; 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=OeIb/X6LUJd0puJOYgEpsyhyK4cnQAwP4cBidqFaUFw=; b=2+ZfnOmEkYxDi5OIE06XM3uHhIJD4U93eg2ynk8pStcQuV6jeN1K3Gs895sPXDMj2z r7tqbyp960wbQz81PScpNTDQpCZZkbgWk6WLykm8/wCyLZBgGyFUUOIFOcA+cRHfrBvE ykJNgwFXFZJnUnendrBDTRRlo52QzZDXnuZHwRbF25rADuopNxnmR6GEQQsPt/ugG4hj 6EHFzfGGd3j+Pv/qegarlTk7NcTwKFZUoSuN8WeEhoK2B2X4WySkbpSk1cwC6Irtd0SI 9XalKGjQ0CFd2RXflH5Y/TGjMZyXdspGiNJqeB8cpMxKRbJ1MxiVmv6nlzfyltmISmbq x2WQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1744731600; x=1745336400; 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=OeIb/X6LUJd0puJOYgEpsyhyK4cnQAwP4cBidqFaUFw=; b=RX3eJ3ifoDhGEdHlPwdKT5XVN51olG23TCORwFCh/UHGFvcZk+iDHRNhiQRMz/wlVq BbrmTmwq54+G/XM9Yz3TbCWj7TuG2IIz837fXB7OrDFDYcI71rj0fTrN8+XGmunJFI6Y O2jRAKYD5SIk5B4gfD61ewu+N1uzaeD76Vtui1iiDJg4paIhFiGA57CX6uLSgh0Smck1 Gk+sQS3JNe/pmcq7JBwxrrvKjNYd+Do1Gni0F1FQViOJti/Op5madlwkqDIHJYf0oT2d /Si5iI1tNmG6cKJpu8vHDZdM5QiaaFC77FDhg8hT1g4TJxFQdWjmC7i7nz1yBe+lXnI/ ghlA== X-Forwarded-Encrypted: i=1; AJvYcCXBvwrtd9hecqehLEwJP4Bu94tKUR26F90CZ7zv3bJ7fEfInlskxlPGejRZfadhbSGiolf7k1JB2g==@kvack.org X-Gm-Message-State: AOJu0YxM5aXaAhIXfNRzrY+AFPqd3aoKCG/wMZsVyb5uYB0wRLSFKJvz mOBEgbnLDy8mTa6fBTeZMkHCToLJ6Ka2boBSUefWurhMzBu6XJW+OB4SWDh1JuOgRJkA7vMkwrf 8QlbeXOyo5pYCO0mDuT5bdL7zJ487w4sGS+yS X-Gm-Gg: ASbGncuwQeNOOtq0PL7HtC87S0unNZTb927p8LS8zUuJMgvXCJSDeFSWPRDj9Z4vLec woJmejW2NbkySd5BzEJMKDZ37J0AxWx6S9WhJVWA+PP+rtb97vapNdO0rvw5hThrE2Tu/QwADhO lidUDjn0vLW5kj5XBc8K/ZdYo= X-Google-Smtp-Source: AGHT+IFLhlUUvSgNVTxL04KKX3RG9sx072ZCun2lap9939vdMyJNLUBNnSRPH2j0J6W4S7CVvCvpIa6UIVdzBlU5+P0= X-Received: by 2002:a17:902:ef47:b0:21f:40e8:6398 with SMTP id d9443c01a7336-22c259d7af2mr3024275ad.26.1744731600188; Tue, 15 Apr 2025 08:40:00 -0700 (PDT) MIME-Version: 1.0 References: <20250414013627.GA9161@system.software.com> In-Reply-To: <20250414013627.GA9161@system.software.com> From: Mina Almasry Date: Tue, 15 Apr 2025 08:39:47 -0700 X-Gm-Features: ATxdqUEEAYYuf9kY0rmh0iT4BhHq7nirTrK82B1hkM9j1bmivYLkzqZcnzQa_eo Message-ID: Subject: Re: [RFC] shrinking struct page (part of page pool) To: Byungchul Park , Jesper Dangaard Brouer , netdev Cc: willy@infradead.org, ilias.apalodimas@linaro.org, kernel_team@skhynix.com, 42.hyeyoo@gmail.com, linux-mm@kvack.org Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Rspam-User: X-Rspamd-Server: rspam10 X-Rspamd-Queue-Id: AC40D1C0010 X-Stat-Signature: o8hir3frpaeg5gdxzmaj1xy4cw9pkio4 X-HE-Tag: 1744731601-283605 X-HE-Meta: U2FsdGVkX1833dv2mbMqk9qExnSlkBJuVGImBD6cOjyiAPN1F2iKNiccDQndvp/qhV9uM1c1jN/b8FtyECTDD7yCDnFT7xJzxcoAau4ZAIk/Q9UbqN5Rlso+T1k86/cdq+MK1zjsYBtD4wJTnbKV77znMZ2fmEhArYIlrI3o0x5Q0CDeQuUtKQxQaNGfIEHCk6z/15eqTkSyec3voWZ0jJLpIrZbYvX7MJbSudozG7qXftZ0kAyf2a9P5hpHWHWPuqKK1Lp0BfTXtHChN3Npa7WOsLjxxgCFSUnF0AMawdS9TyZQtiqB/0qBFyKYkXWvT02mk3FhdDqwpG7r6fO1eq6HiyUVuawbF/6A/54JLwD1cfFGw4HPmcVIRs4l0CMnTRq6nmXq308ls+NVdcm1OJijdMHat1Jf8cDtaBWfud0BNbDeCl7uvEG1iv6l63pxeEBfO2ecfZsdY0294OO9+bk0LOqe/zbpbgDvPzDsjf6s9aXaG95Ylt5bnY5+N01Aq3X0LjhEwGdXHtwSJgnbCbj1/JRtsYsmwBjUN01cTMX3HRhsrLZ0KNLQ+mhj/Nm+Y3yxidaeBrv9luD5RW0kWJxudihIUn6xSo+kNp45eURsxVOFf/GT1dk+D6i61avhRJZmr2tSpVvS8G2+YwabeEvkQ844pfl1xfLOuvbU3W8YihlowPjuYQiX5HisvvN8Sv+nIZJ3LM6avjuNFaYT6Z9xhBFSKyO1uZ6r+Ns6WBka/w0onca7IEaKIWqoIcKN/3YCJlRQbF+FB7woJEEPbVSq1H5oHZxwSnqdf5Z9U6sfaxQJH+NDPHmaMH8zY2SxnfmSYDFlgjKVQUueI+X9IfLY5FZM4XC0uqa24ycWH0Zfyw5lQQrOq6bgWzOgsHQXwzOe2g+koDre7YKOkGqSDBX37wblhf2wEoGZPtmlX95lNRwYAk1yc/Bgon8EzCncnV2sRe6W4qiJFiDjJou nxA8tuvO rBn+mL8CEwI4cCsbPAVu3TsycPJnoI8h01IQ466l9LrsHHQMsoLKsV9RIfPms1eOr/AUj6ow7/5GFJivE2UaTMDy3j2t+VcnDWKfi7NS1KgukWEkPgIgxDXmGa1kP4Cd0c+COveMtWEEDL6NPFoND2r2k95ujUnnRLCaGt1ZrFLT50Znt8d90HGeZ2/dizsjj3HxkU0sQ5fHJhtXlnNWCOmmLkQ6BGjo1PRJHFdwdGgsu9elmbNBLP7xAIHEUMZ585dT9IwBgSIV+H/ozysxncMmox5JO7JVTg380LCjUeHyLKhN8r8KO8w0B3IwriOppTGtvuo55Gge/72QPlymGLFG8PGWHtdeQeHQie2Y4V07wBHtMTDKOdMPZCOxeIlp2W1G5 X-Bogosity: Ham, tests=bogofilter, spamicity=0.000028, 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, Apr 13, 2025 at 6:36=E2=80=AFPM Byungchul Park w= rote: > > Hi guys, > > I'm looking at network's page pool code to help 'shrinking struct page' > project by Matthew Wilcox. See the following link: > > https://kernelnewbies.org/MatthewWilcox/Memdescs/Path > > My first goal is to remove fields for page pool from struct page like: > Remove them, but put them where? The page above specificies "Split the pagepool bump allocator out of struct page, as has been done for, eg, slab and ptdesc.", but I'm not familiar what happened with slab and ptdesc. Are these fields moving to a different location? Or being somehow removed entirely? > 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; > }; > > Fortunately, many prerequisite works have been done by Mina but I guess > he or she has done it for other purpose than 'shrinking struct page'. > Yeah, we did it to support non-page memory in the net stack, which is quite orthogonal to what you're trying to do AFAICT so far. Looks like maybe some implementation details are shared by luck? > I'd like to just finalize the work so that the fields above can be > removed from struct page. However, I need to resolve a curiousity > before starting. > > Network guys already introduced a sperate strcut, struct net_iov, > to overlay the interesting fields. However, another separate struct > for system memory might be also needed e.g. struct bump so that > struct net_iov and struct bump can be overlayed depending on the > source: > > struct bump { > unsigned long _page_flags; > unsigned long bump_magic; > struct page_pool *bump_pp; > unsigned long _pp_mapping_pad; > unsigned long dma_addr; > atomic_long_t bump_ref_count; > unsigned int _page_type; > atomic_t _refcount; > }; > > To netwrok guys, any thoughts on it? Need more details. What does struct bump represent? If it's meant to replace the fields used by the page_pool referenced above, then it should not have _page_flags, bump_ref_count should be pp_ref_count, and should not have _page_type or _refcount. > To Willy, do I understand correctly your direction? > > Plus, it's a quite another issue but I'm curious, that is, what do you > guys think about moving the bump allocator(=3D page pool) code from > network to mm? I'd like to start on the work once gathering opinion > from both Willy and network guys. > What is the terminology "bump"? Are you wanting to rename page_pool to "bump"? What does the new name mean? --=20 Thanks, Mina