Re: [PATCH] mm, hugetlb: don't require CMA for runtime gigantic pages

From: Vlastimil Babka
Date: Thu Feb 04 2016 - 04:31:24 EST


On 02/04/2016 07:02 AM, Joonsoo Kim wrote:
On Wed, Feb 03, 2016 at 06:50:11PM +0100, Vlastimil Babka wrote:
Commit 944d9fec8d7a ("hugetlb: add support for gigantic page allocation at
runtime") has added the runtime gigantic page allocation via
alloc_contig_range(), making this support available only when CONFIG_CMA is
enabled. Because it doesn't depend on MIGRATE_CMA pageblocks and the
associated infrastructure, it is possible with few simple adjustments to
require only CONFIG_MEMORY_ISOLATION instead of full CONFIG_CMA.

After this patch, alloc_contig_range() and related functions are available
and used for gigantic pages with just CONFIG_MEMORY_ISOLATION enabled. Note
CONFIG_CMA selects CONFIG_MEMORY_ISOLATION. This allows supporting runtime
gigantic pages without the CMA-specific checks in page allocator fastpaths.

You need to set CONFIG_COMPACTION or CONFIG_CMA to use
isolate_migratepages_range() and others in alloc_contig_range().

Hm, right, thanks for catching this. I admit I didn't try disabling compaction during the tests.

Thanks.