Re: [PATCH v5 1/2] mm: Allow the page cache to allocate large pages

From: Michal Hocko
Date: Wed Sep 04 2019 - 04:28:08 EST


On Tue 03-09-19 21:30:30, William Kucharski wrote:
>
>
> > On Sep 3, 2019, at 5:57 AM, Michal Hocko <mhocko@xxxxxxxxxx> wrote:
> >
> > On Mon 02-09-19 03:23:40, William Kucharski wrote:
> >> Add an 'order' argument to __page_cache_alloc() and
> >> do_read_cache_page(). Ensure the allocated pages are compound pages.
> >
> > Why do we need to touch all the existing callers and change them to use
> > order 0 when none is actually converted to a different order? This just
> > seem to add a lot of code churn without a good reason. If anything I
> > would simply add __page_cache_alloc_order and make __page_cache_alloc
> > call it with order 0 argument.
>
> All the EXISTING code in patch [1/2] is changed to call it with an order
> of 0, as you would expect.
>
> However, new code in part [2/2] of the patch calls it with an order of
> HPAGE_PMD_ORDER, as it seems cleaner to have those routines operate on
> a page, regardless of the order of the page desired.
>
> I certainly can change this as you request, but once again the question
> is whether "page" should MEAN "page" regardless of the order desired,
> or whether the assumption will always be "page" means base PAGESIZE.
>
> Either approach works, but what is the semantic we want going forward?

I do not have anything against handling page as compound, if that is the
question. All I was interested in whether adding a new helper to
_allocate_ the comound page wouldn't be easier than touching all
existing __page_cache_alloc users.
--
Michal Hocko
SUSE Labs