Re: [PATCH] mm: remove migration for HugePage in isolate_single_pageblock()

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

 





On 2024/8/16 12:58, Andrew Morton wrote:
On Fri, 16 Aug 2024 12:06:25 +0800 Kefeng Wang <wangkefeng.wang@xxxxxxxxxx> wrote:

The gigantic page size may larger than memory block size, so memory
offline always fails in this case after commit b2c9e2fbba32 ("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;

In fact, we don't need to migrate page in page range isolation, for
memory offline path, there is do_migrate_range() to move the pages.
For contig allocation, there is another __alloc_contig_migrate_range()
after isolation to migrate the pages. So fix issue by skipping the
__alloc_contig_migrate_range() in isolate_single_pageblock().

Fixes: b2c9e2fbba32 ("mm: make alloc_contig_range work at pageblock granularity")

Should we backport this into -stable kernels?

Better to backport to stable since memory offline always fail in this case.






[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