• Kefeng Wang's avatar
    mm: remove migration for HugePage in isolate_single_pageblock() · cd5f3193
    Kefeng Wang authored
    The gigantic page size may larger than memory block size, so memory
    offline always fails in this case after commit b2c9e2fb ("mm: make
    alloc_contig_range work at pageblock granularity"),
    
    offline_pages
      start_isolate_page_range
        start_isolate_page_range(isolate_before=true)
          isolate [isolate_start, isolate_start + pageblock_nr_pages)
        start_isolate_page_range(isolate_before=false)
          isolate [isolate_end - pageblock_nr_pages, isolate_end) pageblock
           	__alloc_contig_migrate_range
              isolate_migratepages_range
                isolate_migratepages_block
                  isolate_or_dissolve_huge_page
                    if (hstate_is_gigantic(h))
                        return -ENOMEM;
    
    [   15.815756] memory offlining [mem 0x3c0000000-0x3c7ffffff] failed due to failure to isolate range
    
    Gigantic PageHuge is bigger than a pageblock, but since it is freed as
    order-0 pages, its pageblocks after being freed will get to the right
    free list.  There is no need to have special handling code for them in
    start_isolate_page_range().  For both alloc_contig_range() and memory
    offline cases, the migration code after start_isolate_page_range() will
    be able to migrate gigantic PageHuge when possible.  Let's clean up
    start_isolate_page_range() and fix the aforementioned memory offline
    failure issue all together.
    
    Let's clean up start_isolate_page_range() and fix the aforementioned
    memory offline failure issue all together.
    
    Link: https://lkml.kernel.org/r/20240820032630.1894770-1-wangkefeng.wang@huawei.com
    Fixes: b2c9e2fb ("mm: make alloc_contig_range work at pageblock granularity")
    Signed-off-by: default avatarKefeng Wang <wangkefeng.wang@huawei.com>
    Acked-by: default avatarDavid Hildenbrand <david@redhat.com>
    Acked-by: default avatarZi Yan <ziy@nvidia.com>
    Cc: Matthew Wilcox <willy@infradead.org>
    Cc: Oscar Salvador <osalvador@suse.de>
    Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
    cd5f3193
page_isolation.c 19.8 KB