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

From: David Hildenbrand
Date: Mon Nov 02 2020 - 12:35:21 EST


On 02.11.20 15:44, 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.

Right, this just sounds wrong. We have the exact same issues with long-term pinnings on ZONE_MOVABLE. We have known issues with short-term pinnings and movable allocations (e.g., when a process dies) that should be tackled instead.

This is just trying to work around the original issue.

Nacked-by: David Hildenbrand <david@xxxxxxxxxx>

--
Thanks,

David / dhildenb