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

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

 



On 19 Aug 2024, at 23:26, Kefeng Wang 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;
>
> [   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.
>
> Fixes: b2c9e2fbba32 ("mm: make alloc_contig_range work at pageblock granularity")
> Signed-off-by: Kefeng Wang <wangkefeng.wang@xxxxxxxxxx>
> ---
> v2:
> - update changelog, thanks Zi, David
>
>  mm/page_isolation.c | 28 +++-------------------------
>  1 file changed, 3 insertions(+), 25 deletions(-)
>
LGTM. Thanks.

Acked-by: Zi Yan <ziy@xxxxxxxxxx>

--
Best Regards,
Yan, Zi

Attachment: signature.asc
Description: OpenPGP digital signature


[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