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

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 04/03/2018 10:11 PM, Joonsoo Kim wrote:
Hello, Laura.
Sorry for a late response.


On Fri, Jan 26, 2018 at 06:25:27PM +0100, Michal Hocko wrote:
[Ccing Joonsoo]

Thanks! Michal.


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

If the patchset 'manage the memory of the CMA area by using the ZONE_MOVABLE' is
merged, this restriction can be removed since there is no unmovable
pageblock in ZONE_MOVABLE. Just quick thought. :)

Thanks.


Thanks for that pointer. What's the current status of that patchset? Was that
one that needed more review/testing?

Thanks,
Laura




[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Bugtraq]     [Linux OMAP]     [Linux MIPS]     [eCos]     [Asterisk Internet PBX]     [Linux API]

  Powered by Linux