Commit 16867664936e ("mm,page_alloc,cma: conditionally prefer cma pageblocks for movable allocations")
added support to use CMA pages when more than 50% of total free pages in
the zone are free CMA pages.
However, with multiplatform kernels a single binary is used across different
targets of varying memory sizes. A low memory target using one such kernel
would incur allocation failures even when sufficient memory is available in
the CMA region. On these targets we would want to utilize a higher percentage
of the CMA region and reduce the allocation failures, even if it means that a
subsequent cma_alloc() would take longer.
> Make the percentage of CMA utilization a configurable parameter to allow
for such usecases.
Signed-off-by: Sukadev Bhattiprolu <quic_sukadev@xxxxxxxxxxx>
---
Note: There was a mention about it being the last resort to making this
percentage configurable (https://lkml.org/lkml/2020/3/12/751). But
as explained above, multi-platform kernels for varying memory size
targets would need this to be configurable.
---
include/linux/mm.h | 1 +
kernel/sysctl.c | 8 ++++++++
mm/page_alloc.c | 18 +++++++++++++++---
mm/util.c | 2 ++
4 files changed, 26 insertions(+), 3 deletions(-)