Re: [PATCH v6 00/27] Memory Folios

From: Christoph Hellwig
Date: Fri Apr 02 2021 - 10:38:15 EST


On Thu, Apr 01, 2021 at 12:26:56PM +0100, Matthew Wilcox wrote:
> On Thu, Apr 01, 2021 at 08:05:37AM +0100, Christoph Hellwig wrote:
> > On Wed, Mar 31, 2021 at 07:47:01PM +0100, Matthew Wilcox (Oracle) wrote:
> > > - Mirror members of struct page (for pagecache / anon) into struct folio,
> > > so (eg) you can use folio->mapping instead of folio->page.mapping
> >
> > Eww, why?
>
> So that eventually we can rename page->mapping to page->_mapping and
> prevent the bugs from people doing page->mapping on a tail page. eg
> https://lore.kernel.org/linux-mm/alpine.LSU.2.11.2103102214170.7159@eggly.anvils/

I'm not sure I like this. This whole concept of structures that do need
the same layout is very problematic, even with the safe guards you've
added. So if it was up to me I'd prefer the folio as a simple container
as it was in the previous revisions. At some point members should move
from the page to the folio, but I'd rather do that over a shorter period
an in targeted series. We need the basic to go in first.