On Thu, Feb 04, 2016 at 11:15:48AM +0100, Vlastimil Babka wrote: > On 02/04/2016 10:30 AM, Vlastimil Babka wrote: > > 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. > > Here's a v2. Not the prettiest thing, admittedly. > > ----8<---- > From: Vlastimil Babka <vbabka@xxxxxxx> > Date: Wed, 3 Feb 2016 17:45:26 +0100 > Subject: [PATCH v2] mm, hugetlb: don't require CMA for runtime gigantic pages > > 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 and CONFIG_COMPACTION 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 and > CONFIG_COMPACTION enabled (or CONFIG_CMA as before). Note CONFIG_CMA selects > CONFIG_MEMORY_ISOLATION. This allows supporting runtime gigantic pages without > the CMA-specific checks in page allocator fastpaths. > > Signed-off-by: Vlastimil Babka <vbabka@xxxxxxx> > Cc: Luiz Capitulino <lcapitulino@xxxxxxxxxx> > Cc: Kirill A. Shutemov <kirill.shutemov@xxxxxxxxxxxxxxx> > Cc: Zhang Yanfei <zhangyanfei@xxxxxxxxxxxxxx> > Cc: Yasuaki Ishimatsu <isimatu.yasuaki@xxxxxxxxxxxxxx> > Cc: Joonsoo Kim <iamjoonsoo.kim@xxxxxxx> > Cc: Naoya Horiguchi <n-horiguchi@xxxxxxxxxxxxx> > Cc: Mel Gorman <mgorman@xxxxxxxxxxxxxxxxxxx> > Cc: Davidlohr Bueso <dave@xxxxxxxxxxxx> > Cc: Hillf Danton <hillf.zj@xxxxxxxxxxxxxxx> > Cc: Mike Kravetz <mike.kravetz@xxxxxxxxxx> > --- > include/linux/gfp.h | 6 +++--- > mm/hugetlb.c | 2 +- > mm/page_alloc.c | 2 +- > 3 files changed, 5 insertions(+), 5 deletions(-) One more place missed: gigantic_pages_init() in arch/x86/mm/hugetlbpage.c Could you relax the check there as well? -- Kirill A. Shutemov -- 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>