Re: [LSF/MM TOPIC] CMA and larger page sizes

Michal Hocko
2018-04-17T11:36:58Z

On Fri 26-01-18 02:08:14, Laura Abbott wrote:
> CMA as it's currently designed requires alignment to the pageblock size c.f.
>
> /*
> * Sanitise input arguments.
> * Pages both ends in CMA area could be merged into adjacent unmovable
> * migratetype page by page allocator's buddy algorithm. In the case,
> * you couldn't get a contiguous memory, which is not what we want.
> */
> alignment = max(alignment, (phys_addr_t)PAGE_SIZE <<
> max_t(unsigned long, MAX_ORDER - 1, pageblock_order));
>
>
> On arm64 with 64K page size and transparent huge page, this gives an alignment
> of 512MB. This is quite restrictive and can eat up significant portions of
> memory on smaller memory targets. Adjusting the configuration options really
> isn't ideal for distributions that aim to have a single image which runs on
> all targets.
>
> Approaches I've thought about:
> - Making CMA alignment less restrictive (and dealing with the fallout from
> the comment above)
> - Command line option to force a reasonable alignment

Laura, are you still interested discussing this or other CMA related
topic?

--
Michal Hocko
SUSE Labs