[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20210320020920.GD77072@balbir-desktop>
Date: Sat, 20 Mar 2021 13:09:20 +1100
From: Balbir Singh <bsingharora@...il.com>
To: Matthew Wilcox <willy@...radead.org>
Cc: linux-mm@...ck.org, linux-kernel@...r.kernel.org,
linux-fsdevel@...r.kernel.org
Subject: Re: [PATCH v4 01/25] mm: Introduce struct folio
On Fri, Mar 19, 2021 at 01:25:27AM +0000, Matthew Wilcox wrote:
> On Fri, Mar 19, 2021 at 10:56:45AM +1100, Balbir Singh wrote:
> > On Fri, Mar 05, 2021 at 04:18:37AM +0000, Matthew Wilcox (Oracle) wrote:
> > > A struct folio refers to an entire (possibly compound) page. A function
> > > which takes a struct folio argument declares that it will operate on the
> > > entire compound page, not just PAGE_SIZE bytes. In return, the caller
> > > guarantees that the pointer it is passing does not point to a tail page.
> > >
> >
> > Is this a part of a larger use case or general cleanup/refactor where
> > the split between page and folio simplify programming?
>
> The goal here is to manage memory in larger chunks. Pages are now too
> small for just about every workload. Even compiling the kernel sees a 7%
> performance improvement just by doing readahead using relatively small
> THPs (16k-256k). You can see that work here:
> https://git.infradead.org/users/willy/pagecache.git/shortlog/refs/heads/master
>
> I think Kirill, Hugh and others have done a fantastic job stretching
> the page struct to work in shmem, but we really need a different type
> to avoid people writing code that _looks_ right but is actually buggy.
> So I'm starting again, this time with the folio metaphor.
Thanks, makes sense, I'll take a look.
Balbir Singh.
Powered by blists - more mailing lists