Re: [PATCH 0/2] Increasing CMA Utilization with a GFP Flag

From: Michal Hocko
Date: Tue Nov 03 2020 - 14:58:40 EST


On Mon 02-11-20 14:44:49, Matthew Wilcox wrote:
> On Mon, Nov 02, 2020 at 06:39:20AM -0800, Chris Goldsworthy wrote:
> > The current approach to increasing CMA utilization introduced in
> > commit 16867664936e ("mm,page_alloc,cma: conditionally prefer cma
> > pageblocks for movable allocations") increases CMA utilization by
> > redirecting MIGRATE_MOVABLE allocations to a CMA region, when
> > greater than half of the free pages in a given zone are CMA pages.
> > The issue in this approach is that allocations with type
> > MIGRATE_MOVABLE can still succumb to pinning. To get around
> > this, one approach is to re-direct allocations to the CMA areas, that
> > are known not to be victims of pinning.
> >
> > To this end, this series brings in __GFP_CMA, which we mark with
> > allocations that we know are safe to be redirected to a CMA area.
>
> This feels backwards to me. What you're essentially saying is "Some
> allocations marked with GFP_MOVABLE turn out not to be movable, so we're
> going to add another GFP_REALLY_MOVABLE flag" instead of tracking down
> which GFP_MOVABLE allocations aren't really movable.

Absolutely agreed. What is even worse the proposed approach doesn't
really add any new guarantee. Just look at how the new flag is used for
any anonymous page and that is a subject to a long term pinning as well.
So in the end a new and confusing gfp flag is proposed that doesn't
really help with the underlying problem.

Nacked-by: Michal Hocko <mhocko@xxxxxxxx>
--
Michal Hocko
SUSE Labs