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 There's been some interest in other CMA topics so this might go along well. Thanks, Laura -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxx. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>