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